檢測瀏覽器是否支援HTML5功能
在用HTML5開發Web App時,檢測瀏覽器是否支援HTML5功能是個必須的步驟。
檢測瀏覽器是否支援HTML5功能,可歸結為以下四種方式:
- 在全域性物件上檢測屬性;
- 在建立的元素上檢測屬性;
- 檢測一個方法是否返回期望值;
- 檢測元素是否能保留值。
1. 在全域性物件上檢測屬性
比如,檢測離線功能的程式碼:
<!doctype html>
<html lang="cn">
<head>
<meta charset="UTF-8">
<title>applicationCache Test</title>
<script>
window.onload = function() {
if (window.applicationCache) {
document.write("Yes, your browser can use offline web applications.");
} else {
document.write("No, your browser cannot use offline web applications.");
}
}
</script>
</head>
<body>
</body>
</html>
2. 在建立的元素上檢測屬性
首先要建立一個元素,再檢測其能否為DOM識別。比如,通過測試canvas
元素的context
屬性,檢測瀏覽器是否支援canvas
元素:
<!doctype html>
<html lang="cn">
<head>
<meta charset="UTF-8">
<title>Simple Square</title>
<script type="text/javascript">
window.onload = drawSquare;
function drawSquare () {
var canvas = document.getElementById('Simple.Square');
if (canvas.getContext) {
var context = canvas.getContext('2d');
context.fillStyle = "rgb(13, 118, 208)";
context.fillRect(2, 2, 98, 98);
} else {
alert("Canvas API requires an HTML5 compliant browser.");
}
}
</script>
</head>
<body>
<canvas id="Simple.Square" width="100" height="100"></canvas>
</body>
</html>
3. 檢測一個方法是否返回期望值
我們知道,瀏覽器對WebM、H.264的支援是不盡相同的。如何檢測瀏覽器支援哪種編解碼器?首先要像前面“2. 在建立的元素上檢測屬性”所述那樣,先檢測是否支援該元素(比如video
),再檢測方法是否返回期望值:
<!doctype html>
<html lang="cn">
<head>
<meta charset="UTF-8">
<title>Video Test</title>
<script>
function videoCheck() {
return !!document.createElement("video").canPlayType;
}
function h264Check() {
if (!videoCheck) {
document.write("not");
return;
}
var video = document.createElement("video");
if (!video.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"')) {
document.write("not");
}
return;
}
document.write("Your browser does ");
h264Check();
document.write(" support H.264 video.");
</script>
</head>
<body>
</body>
</html>
4. 檢測元素是否能保留值
HTML5表單元素的檢測只能用這種方法,比如input
的range
型別,如果瀏覽器不支援,則會顯示一個普通的文字框,具體檢測方法如下所示:
<!doctype html>
<html lang="cn">
<head>
<meta charset="UTF-8">
<title>Range Input Test</title>
<script>
function rangeCheck() {
var i = document.createElement("input");
i.setAttribute("type", "range");
if (i.type == "text") {
document.write("not");
}
return;
}
document.write("Your browser does ");
rangeCheck();
document.write(" support the <code><input type=range></code> input type.");
</script>
</head>
<body>
</body>
</html>
相關文章
- 怎麼檢測瀏覽器是否支援HTML5特性?瀏覽器HTML
- 檢測當前瀏覽器是否支援cookie瀏覽器Cookie
- HTML5 之瀏覽器支援介紹HTML瀏覽器
- 怎麼檢測瀏覽器劫持,瀏覽器劫持的方法介紹瀏覽器
- 常見瀏覽器終端檢測瀏覽器
- 跨瀏覽器的JavaScript效能檢測工具瀏覽器JavaScript
- APUS瀏覽器應用整合惡意URL檢測功能,風險網站檢測能力提升20瀏覽器網站
- js 判斷是什麼瀏覽器、是否為谷歌瀏覽器JS瀏覽器谷歌
- 瀏覽器開發者工具開啟檢測瀏覽器
- 瀏覽器檢視Session瀏覽器Session
- 檢視瀏覽器請求的session 瀏覽器怎麼檢視session瀏覽器Session
- html5多終端瀏覽器相容HTML瀏覽器
- JavaScript中的瀏覽器檢測和DOM基礎JavaScript瀏覽器
- 瀏覽器原生支援平滑滾動瀏覽器
- [譯] 瀏覽器中 CSS 支援指南瀏覽器CSS
- getElementsByClassName()方法的瀏覽器支援版本瀏覽器
- 瀏覽器的全屏功能小結瀏覽器
- js 呼叫瀏覽器複製功能JS瀏覽器
- 谷歌Chrome瀏覽器正測試ECH隱私保護功能谷歌Chrome瀏覽器
- [BUG反饋]IE瀏覽器,百度瀏覽器,搜狗瀏覽器批量操作功能都不相容!!!!傲遊、火狐、谷歌瀏覽器可以瀏覽器谷歌
- 夸克瀏覽器PC端功能體驗瀏覽器
- JavaScript 使用者代理檢測(瀏覽器型別檢測,執行平臺檢測等) 規範程式碼JavaScript瀏覽器型別
- 常用JS特性瀏覽器支援版本查詢JS瀏覽器
- 跨瀏覽器測試需要面臨哪些挑戰?跨瀏覽器測試工具分享瀏覽器
- 瀏覽器利用框架BeEF測試瀏覽器框架
- 【瀏覽器】瀏覽器基本工作原理瀏覽器
- js判斷是否移動端及瀏覽器核心JS瀏覽器
- 驗證碼前端對各瀏覽器的支援前端瀏覽器
- 如何讓瀏覽器支援 import 和export語法瀏覽器ImportExport
- Brave瀏覽器開始支援區塊鏈IPFS瀏覽器區塊鏈
- 為什麼跨瀏覽器測試很重要?7款跨瀏覽器測試工具請查收!瀏覽器
- win10ie瀏覽器不支援付款怎麼解決_win10ie瀏覽器不支援付款如何修復Win10瀏覽器
- win10系統下Edge瀏覽器如何禁用InPrivate無痕瀏覽功能Win10瀏覽器
- Chrome 瀏覽器修改 UA 模擬其它瀏覽器,包括移動瀏覽器Chrome瀏覽器
- 瀏覽器瀏覽器
- Mocha瀏覽器測試入門教程瀏覽器
- Min瀏覽器: 更快更輕量瀏覽器瀏覽器
- 基石-初見瀏覽器(一):瀏覽器渲染瀏覽器
- 谷歌瀏覽器檢視本地儲存資訊谷歌瀏覽器