溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何用HTML5 Canvas測(cè)試瀏覽器是否支持Canvas

發(fā)布時(shí)間:2021-09-28 14:55:25 來(lái)源:億速云 閱讀:147 作者:iii 欄目:web開(kāi)發(fā)

本篇內(nèi)容介紹了“如何用HTML5 Canvas測(cè)試瀏覽器是否支持Canvas”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

在獲取HTML頁(yè)面上Canvas元素的引用后,我們需要測(cè)試一下該元素是否包含“上下文”(context)。Canvas的上下文指的是由瀏覽器定義的用于繪畫(huà)的平面。簡(jiǎn)單地說(shuō),如果上下文不存在的話,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元素來(lái)進(jìn)行這種判斷 — 這種方法很流行,Mark Pilgrim在他的HTML5網(wǎng)站http://diveintohtml5.org中提到了這種方案:

代碼如下:

function canvasSupport() {
   return !!document.createElement('canvas').getContext;
}
function canvasApp() {
   if (!canvasSupport()) {
       return;
   }
}


我們最鐘愛(ài)的方法是使用modernizr.js庫(kù)(在http://www.modernizr.com中可以找到)。Modernizr是一個(gè)簡(jiǎn)單易用的輕量級(jí)JavaScript庫(kù),用于測(cè)試各種Web技術(shù)的兼容性 — 它提供了很多靜態(tài)的Boolean方法,可以用來(lái)測(cè)試當(dāng)前Canvas是否得到支持。

在HTML頁(yè)面中引入modernizr很簡(jiǎn)單,從http://www.modernizr.com上下載代碼,然后在HTML頁(yè)面中包含這個(gè)外部js文件即可:

代碼如下:

<script src="modernizr-1.6.min.js"></script>


使用Modernizr測(cè)試Canvas的支持性,只需將上面的canvasSupport函數(shù)改動(dòng)一下就可以了:

代碼如下:

function canvasSupport() {
   return Modernizr.canvas;
}

“如何用HTML5 Canvas測(cè)試瀏覽器是否支持Canvas”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI