麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > Java > 正文

javasc!ript框架設(shè)計(jì)之瀏覽器的嗅探和特征偵測(cè)

2019-11-02 15:07:27
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  瀏覽器的嗅探現(xiàn)在已經(jīng)不推薦了,但在某些場(chǎng)合還是需要的。比如一些統(tǒng)計(jì)腳本。在標(biāo)準(zhǔn)瀏覽器里,提供了document.implementation.hasfeature,可惜有bug,不準(zhǔn)確,目前,w3c又推出了CSS.supports方法,顯示出大家對(duì)這塊的關(guān)注。

  1.判定瀏覽器。

  主流的瀏覽器有ie firefox opera chorme safari 早期這些框架都是通過(guò)navigator.userAgent進(jìn)行判定,目前國(guó)外的瀏覽器幾乎都是可以判定的。

  關(guān)于瀏覽器的判斷腳本,jQuery已經(jīng)移出本體,形成一個(gè)插件。更多的方式不多介紹,

  移動(dòng)設(shè)備的相關(guān)判定,這個(gè)建議看jQuery mobile與zepto的源代碼。

  代碼如下:

  isIPone = /isIPone/i.test(navigator.userAgent);

  isIPone4 = window.devicePixelRatio >= 2 //在網(wǎng)頁(yè)中,pixel與point比值稱為device-pixel-ratio,普通設(shè)備都是1,iPhone4是2,有些 安卓機(jī)型是1.5

  isIpad = /ipad/i.test(navigator.userAgent)

  isAndroid = /android/i.test(navigator.userAgent)

  isIOS = isIPone || isIpad

  國(guó)內(nèi)的瀏覽器判定可以看Tangrame或qwrap,它們基本是IE,webkit,blink內(nèi)核。

  2.事件的支持偵測(cè)

 

  prototype的核心成員kangax寫(xiě)了一篇文章,來(lái)判斷瀏覽器對(duì)某種事件的支持。里面給出的實(shí)現(xiàn)如下:

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 var isEventSupported = (function() { var TAGNAMES = { 'select':'input','change':'input', 'submit':'form','reset':'form', 'error':'img','load':'img','abort':'img' } function isEventSupported(eventName){ var el = document.createElement(TAGNAMES[eventName] || 'div'); eventName = 'on' + eventName; var isSupported = (eventName in el); if (!isSupported) { el.setAttribute(eventName, 'return;'); isSupported = typeof el[eventName] == 'function'; } el = null; return isSupported; } return isEventSupported; })();

  現(xiàn)在jQuery等框架都是使用腳本的簡(jiǎn)化版

  不過(guò)哪一個(gè)也好,這種檢測(cè)只對(duì)DOM0奏效,像DOMMouseScroll DOMContentLoaded DOMFocusIn DOMFocusOut DOMSubtreeModified DOMNodeInserted DOMNodeRemoved DOMNodeRemovedFromDocument DOMNodeInsertedIntoDocument DOMAttrModified DOMCharactorDataModified這些以DOM開(kāi)頭的就無(wú)能為力了。

  這些事件中,有的非常有用,如DOMMouseScroll,firefox一直不支持mousesheel,只能用它做替代品。

  DOMContentLoaded是實(shí)現(xiàn)domReady的重要事件;DOMNodeRemoved是判定元素是否從其父節(jié)點(diǎn)移除,父節(jié)點(diǎn)可能是其它元素節(jié)點(diǎn)或文檔碎片;DOMNodeRemovedFromDocument 是移離DOM樹(shù),DOMAttrModified 以前經(jīng)常用于模擬IE的onpropertyChange

  css3添加兩種動(dòng)畫(huà),一種是transition動(dòng)畫(huà),另外一種是keyframe補(bǔ)間動(dòng)畫(huà)。它們?cè)谑录Y(jié)束時(shí)都用事件回調(diào)。但在標(biāo)準(zhǔn)化過(guò)程中,瀏覽器給它們起的名字相當(dāng)于沒(méi)規(guī)則。這個(gè)也需要預(yù)先偵測(cè)出來(lái)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 中文字幕观看 | 国产精品成人一区二区三区吃奶 | 国产精品一区99 | 欧美久久久一区二区三区 | 国产羞羞视频 | 精品亚洲一区二区三区 | 欧美日韩免费在线观看视频 | 久久久久久久久久亚洲 | 亚洲欧美日韩一区二区三区在线观看 | 欧美18xxxx | 久久草在线看 | 日韩视频中文 | 成人福利在线免费观看 | 亚洲精中文字幕二区三区 | 久久精品小短片 | 国产精品亚洲一区二区三区久久 | 欧美a在线看 | 亚洲成人精品国产 | 日日草夜夜草 | 久久精品亚洲国产奇米99 | 午夜在线观看视频网站 | 极品一级片 | 国产资源在线视频 | 免费看污视频在线观看 | 91懂色 | 久久久久久久久久久久久久久伊免 | 成人免费在线网 | 午夜色视频在线观看 | 国产一区精品在线观看 | 91精品欧美一区二区三区 | 欧美女同hd | 激情久久一区二区 | 亚洲成人免费影视 | 中文字幕在线播放不卡 | 成人免费影院 | 91在线色| 久久精品中文字幕一区二区三区 | 黄色影院在线看 | 日韩精品一区二区三区中文 | 国产午夜精品一区二区三区视频 | 亚洲一级成人 |