日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

HTML5系列四(特征检测、Modernizr.js的相关介绍)

發布時間:2025/5/22 HTML 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTML5系列四(特征检测、Modernizr.js的相关介绍) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Modernizr:一個HTML5特征檢測庫

Modernizr幫助我們檢測瀏覽器是否實現了某個特征,如果實現了那么開發人員就可以充分利用這個特征做一些工作

Modernizr是自動運行的,無須調用諸如modernizr_init()之類的初始化方法

Modernizr的官網地址http://modernizr.com/

在官網首頁你就可以下載modernizr.js(它分兩個版本Development和Production版本。其實它們都會導向同一個下載頁面,只不過前者會幫我們把選項預先勾上而已。)

當我把下載的modernizr.js引用到頁面中時(這時我什么也沒做),看如下的圖片就知道modernizr.js是自執行的

使用了Modernizr后,頁面中渲染后的html代碼是這個樣子的:

其中有很多以no作為前綴的class,當然大部分都沒有這個前綴。事實上,如果一個類名以no作為前綴,比如?no-touch?這表示瀏覽器不支持touch特性

modernizr還有一個test頁面,大家可以在自己的瀏覽器里面打開這個test頁面看看瀏覽器對于html5和css3的支持情況(據我所知chrome應該是對html5和css3支持最好的一個瀏覽器)

test頁面的地址http://modernizr.github.io/Modernizr/test/index.html

HTML5特征檢測(分別介紹使用JS原生方法檢測及使用modernizr類庫檢測)

    • 檢測瀏覽器是否支持canvas API
/**@desc:檢測瀏覽器是否支持canvas API*/function supports_canvas() {return !!document.createElement('canvas').getContext;} if (Modernizr.canvas) {//support} else {//not support}
    • 檢測瀏覽器是否支持canvas 文本API
//瀏覽器支持canvas API并不意味著支持canvas文本API(原因是繪制文本的函數是后來才被納入規范中)/**@desc:檢測瀏覽器是否支持canvas 文本API*/function supports_canvas_text() {if (!supports_canvas()) {return false;}var dummy_canvas = document.createElement('canvas');var context = dummy_canvas.getContext('2d');return typeof context.fillText == 'function';} if (Modernizr.canvastext) {//support} else {//not support}
    • 檢測瀏覽器是否HTML5的video
/**@desc:檢測瀏覽器是否HTML5的video*/function supports_video() {return !!document.createElement('video').canPlayType;} if (Modernizr.video) {//support} else {//not support}
    • 檢測視頻格式
//檢測視頻格式/**@desc:檢測Mac 和iPhone支持的受專利保護的格式*/function supports_h264_baseline_video() {if (!supports_video()) {return false;}var v = document.createElement('video');return v.canPlayType('video/mp4;codecs="avc1.42E01E,mp4a.40.2"');}/**@desc:檢測被Mozilla Firefox和其它一些開源瀏覽器 支持的開放視頻格式*/function supports_ogg_theora_video() {if (!supports_video()) {return false;}var v = document.createElement('video');return v.canPlayType('video/ogg;codecs="theora,vorbis"');}/**@desc:WebM(一種開源的視頻編碼格式) 檢測被Chrome FireFox Opera支持的開放視頻格式*/function supports_webm_video() {if (!supports_video()) {return false;}var v = document.createElement('video');return v.canPlayType('video/webm;codecs="vp8,vorbis"');} if (Modernizr.video) {//可以播放視頻格式 但播放哪種格式的呢if (Modernizr.video.ogg) {} else {if (Modernizr.video.h264) {} else {if (Modernizr.video.webm) {}}}} else {//not support}
    • 檢測瀏覽器是否支持本地存儲
/**@desc:檢測瀏覽器是否支持本地存儲*/function supports_local_storage() {return ('localStorage' in window) && window['localStorage'] != null;} if (Modernizr.localstorage) {//support} else {//not support}
    • 檢測瀏覽器是否支持web worker
/**@desc:檢測瀏覽器是否支持web worker*/function supports_local_storage() {return !!window.Worker;} if (Modernizr.webworkers) {//support} else {//not support}
    • 檢測瀏覽器是否支持離線web應用
/**@desc:檢測瀏覽器是否支持離線web應用*/function supports_offline() {return !!window.applicationCache;} if (Modernizr.applicationcache) {//support} else {//not support}
    • 檢測瀏覽器是否支持地理定位
/**@desc:檢測瀏覽器是否支持地理定位*/function supports_geolocation() {return !!navigator.geolocation;} if (Modernizr.geolocation) {//support} else {//not support}
    • 檢測瀏覽器是否支持占位文本
/**@desc:檢測瀏覽器是否占位文本*/function supports_input_placeholder() {var i = document.createElement('input');return 'placeholder' in i;} if (Modernizr.input.placeholder) {//support} else {//not support}
    • 檢測瀏覽器是否支持web worker
/**@desc:檢測瀏覽器是否支持自動聚焦*/function supports_input_autofocus() {var i = document.createElement('input');return 'autofocus' in i;} if (Modernizr.input.autofocus) {//support} else {//not support}

還有很多,這里就不一一介紹了,總之,通過上面的特征檢測可以知道,用modernizr.js更加方便,使用原生的方法相對來說會要復雜一些。

細說modernizr.js

Modernizr幫助我們檢測瀏覽器是否實現了某個feature,如果實現了那么開發人員就可以充分利用這個feature做一些工作,反之沒有實現開發人員也好提供一個fallback。

舉例來說,當我們引入了Modernizr.js類庫后,?<html>?標簽的class屬性就會被相應的賦值,以顯示瀏覽器是否支持某類CSS屬性。比如在IE6下面,不支持boderradius特性,那么在?<html>?標簽中就會出現?no-borderradius?類,我們可以做一些fallback的工作:

.no-borradius div{/*-- do some hacks here --*/ }

上面我們已經介紹了,檢測瀏覽器是否支持某項特性,我們可以用這種語法:

Modernizr.featuretodetect

再舉一個通常的例子

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script> <script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.1.min.js">\x3C/script>')</script>

一般我們都會這樣加載jQuery類庫,先從Google CDN上拿,如果沒拿到再加載本地的。

Modernizr.load()根據一些條件判斷來動態選擇加載CSS和JavaScript,這無疑對避免不必要的資源加載有極大的幫助。

那么上面的例子可以用Modernizr.load寫成如下所示

Modernizr.load([{load: '//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js',complete: function () {if ( !window.jQuery ) {Modernizr.load('js/libs/jquery-1.7.1.min.js');}}},{// This will wait for the fallback to load and// execute if it needs to.load: 'needs-jQuery.js'} ]);

事實上Modernizr.load最簡單的語法如下所示:

Modernizr.load(test: Modernizr.webgl,yep : 'three.js',nope: 'jebgl.js' );

也就是當瀏覽器支持WebGL的時候,就引入?three.js?這個類庫做一些3D效果。瀏覽器不支持WebGL的時候可以使用?jebgl.js?做一些fallback操作。

有興趣可以去官網看看具體API

總結

以上是生活随笔為你收集整理的HTML5系列四(特征检测、Modernizr.js的相关介绍)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜av网站 | 成人免费在线播放视频 | 91福利视频免费观看 | 日批免费观看 | 超碰自拍 | 六月婷婷综合网 | 性高潮久久久久久久久久 | 欧美视频免费看欧美视频 | 人人草人人看 | 少妇1~3伦理 | 久久亚洲网 | 色网站在线看 | 日本色婷婷 | 亚洲一区三区 | 欧美福利在线观看 | 中文字幕av一区二区三区人妻少妇 | 成年人视频在线看 | 久久亚洲精品无码va白人极品 | 亚洲一区二区在线免费观看 | 国产思思| 奇米影视777在线观看 | 两性午夜免费视频 | 亚洲黄色在线视频 | 欧美精品aaa | 在线观看精品一区 | www.亚洲色图| 久久人人爽人人爽人人av | 久久超| 日韩精品在线一区 | 我的丝袜美腿尤物麻麻 | 国产爆操视频 | 免费av在线网址 | 国产人妖ts | 国产原创剧情av | 国产第一页在线播放 | 免费一级淫片aaa片毛片a级 | 欧美在线一级视频 | 国产成人亚洲一区二区 | 久久久久无码精品国产sm果冻 | 中文字幕一区二区三区四区欧美 | 日本在线不卡一区二区三区 | 老司机伊人 | 得得的爱在线视频 | 亚洲最大的av网站 | 国产伦精品一区二区三区免费 | 黄色小说视频网站 | 黄色片免费播放 | 视频在线观看99 | 亚洲一区二区自拍 | 乱lun合集小可的奶水 | 黄色av不卡 | 根深蒂固在线观看 | 亚洲人掀裙打屁股网站 | 欧美1区 | 精品一区二区三区毛片 | 天堂在线v | 久久男女 | 阿v免费在线观看 | 成人人伦一区二区三区 | 欧美xxxx吸乳 | 久久天堂精品 | 久久久久久久久久免费 | 国产一级淫片免费 | 国产对白自拍 | 亚洲不卡中文字幕 | 女人脱裤子让男人捅 | 欧美韩日国产 | 欧美性做爰免费观看 | 久草视频免费播放 | 人人爽夜夜爽 | 亚洲免费毛片 | 婷婷二区| 午夜视频91 | 欧美xx孕妇| 亚洲色图3p| 手机在线毛片 | 久久亚洲网站 | 91精品网| 国自产拍偷拍精品啪啪一区二区 | av手机在线免费观看 | 久久精品66 | 波多野结衣乳巨码无在线观看 | 久久久男人的天堂 | 久久午夜福利电影 | 视频一区二区免费 | 亚洲高清视频免费观看 | 狼人伊人久久 | 亚洲一级Av无码毛片久久精品 | 午夜在线观看视频18 | 依人成人 | 毛片av在线 | 短篇山村男同肉耽h | 精品九九 | 91久久久久国产一区二区 | 午夜婷婷色 | 精品国产乱码久久久久久影片 | 国产精品5区 | 香蕉久久av一区二区三区 | 亚洲免费综合 |