HTML5 Canvas之測(cè)試瀏覽器是否支持Canvas的方法

字號(hào):


    在獲取HTML頁(yè)面上Canvas元素的引用后,我們需要測(cè)試一下該元素是否包含“上下文”(context)。Canvas的上下文指的是由瀏覽器定義的用于繪畫的平面。簡(jiǎn)單地說,如果上下文不存在的話,Canvas也就名存實(shí)亡了。測(cè)試瀏覽器是否支持Canvas有好幾種方法。第一種方法是檢查HTML頁(yè)面中Canvas元素的getContext方法是否存在:
    代碼如下:
    if (!theCanvas || !theCanvas.getContext) {
    return;
    }
    事實(shí)上,上述代碼測(cè)試了兩點(diǎn):其一,測(cè)試了theCanvas是否為false(如果id不存在的話,document.getElementById()會(huì)返回false);其二,測(cè)試了getContext()函數(shù)是否存在。
    在上述代碼中,如果測(cè)試失敗,那么return語(yǔ)句執(zhí)行,程序終止。
    另一種方法是創(chuàng)建一個(gè)專門用于判斷Canvas是否得以支持的函數(shù),而在該函數(shù)中,實(shí)時(shí)生成一個(gè)Canvas元素來進(jìn)行這種判斷 — 這種方法很流行,Mark Pilgrim在他的HTML5網(wǎng)站中提到了這種方案:
    代碼如下:
    function canvasSupport() {
    return !!document.createElement('canvas').getContext;
    }
    function canvasApp() {
    if (!canvasSupport()) {
    return;
    }
    }
    我們最鐘愛的方法是使用modernizr.js庫(kù)(在中可以找到)。Modernizr是一個(gè)簡(jiǎn)單易用的輕量級(jí)JavaScript庫(kù),用于測(cè)試各種Web技術(shù)的兼容性 — 它提供了很多靜態(tài)的Boolean方法,可以用來測(cè)試當(dāng)前Canvas是否得到支持。
    在HTML頁(yè)面中引入modernizr很簡(jiǎn)單,從上下載代碼,然后在HTML頁(yè)面中包含這個(gè)外部js文件即可:
    代碼如下:
    <script src="modernizr-1.6.min.js"></script>
    使用Modernizr測(cè)試Canvas的支持性,只需將上面的canvasSupport函數(shù)改動(dòng)一下就可以了:
    代碼如下:
    function canvasSupport() {
    return Modernizr.canvas;
    }
    我們認(rèn)為,判斷瀏覽器是否支持Canvas,使用Modernizr.js是最好的方案。