其一,是使用使用瀏覽器的功能屬性。比如檢測(cè)瀏覽器是否支持 getElementById 方法就可以使用 " /> 亚洲一区免费在线观看,久久精品无码人妻无码AV蜜臀 ,小柔的性放荡羞辱日记

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

用jQuery實(shí)現(xiàn)檢測(cè)瀏覽器及版本的腳本代碼

如何用 Javascript 檢測(cè)瀏覽器似乎是老生常談的問(wèn)題。根據(jù)本人的經(jīng)驗(yàn),使用 Javascript 檢測(cè)瀏覽器無(wú)非使用兩大類(lèi)的方法。

其一,是使用使用瀏覽器的功能屬性。比如檢測(cè)瀏覽器是否支持 getElementById 方法就可以使用

if (document.getElementById) {
    // the method exists, so use it here
} else {
    // do something else
}

雖然這樣的檢測(cè)無(wú)法得知用戶(hù)具體使用哪一種瀏覽器,不過(guò)開(kāi)發(fā)者根據(jù)瀏覽器的功能判斷是否兼容自己的代碼是經(jīng)得起考驗(yàn)的。如果關(guān)注瀏覽器的實(shí)際功能而不在乎它的實(shí)際身份,就可以使用這種方法。

其二,就是使用傳統(tǒng)的 user-agent 字符串,這可能是最古老也是最流行的檢測(cè)方式。雖然從技術(shù)角度上說(shuō),用戶(hù)可以更改自己的 user-agent,但是使用它的確能獲得一些有用的信息。

話(huà)說(shuō)到此可能有些偏題。使用過(guò) jQuery 的朋友都知道,使用 jQuery 本身的 brower 方法就可以準(zhǔn)確的判斷用戶(hù)在使用那種瀏覽器甚至是版本。好的開(kāi)發(fā)庫(kù)使用者都想了解其中的一些其實(shí)現(xiàn)機(jī)制,那么,jQuery 是如何做到這些的?

查看 jQuery 最新的源代碼(版本 1.2.2),在第 1195 行至 1205 行,是它的判斷瀏覽器的函數(shù)。正如你所看見(jiàn)的,jQuery 使用的是上述第二種方法,即使用 user-agent 判斷用戶(hù)的瀏覽器和版本。

坦白說(shuō),起先我對(duì)短短的五行代碼就可以判斷瀏覽器的種類(lèi)和版本感到非常的驚奇。在《Javascript 高級(jí)程序設(shè)計(jì)》一書(shū)中,作者甚至使用單獨(dú)的章節(jié)描述的如何使用 Javascript 判斷瀏覽器和操作系統(tǒng)。但通過(guò)閱讀其代碼(其實(shí)并不難),我頓時(shí)有中恍然大悟的感覺(jué)。廢話(huà)不多說(shuō),貼上代碼。

var userAgent = navigator.userAgent.toLowerCase();

// Figure out what browser is being used
jQuery.browser = {
    version: (userAgent.match( /.+(?:rv|it|ra|ie)[//: ]([/d.]+)/ ) || [])[1],
    safari: /webkit/.test( userAgent ),
    opera: /opera/.test( userAgent ),
    msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
    mozilla: /mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)
};

說(shuō)到這里,其實(shí)有經(jīng)驗(yàn)的 Javascript 開(kāi)發(fā)人員已經(jīng)知道了其中的奧秘。是的,jQuery 使用的是正則判斷瀏覽器的種類(lèi)和版本。做得相當(dāng)?shù)钠粒?

首先它將 user-agent 統(tǒng)一成小寫(xiě),然后使用正則逐步的匹配是哪種瀏覽器。有關(guān)正則方面相關(guān)的信息,可以參考這里。不過(guò),有人肯定會(huì)懷疑這樣的判斷是否正確。那么我們先來(lái)看下下面四個(gè)主流瀏覽器的 user-agent:

Safari(Windows edition)

... AppleWebKit/523.12.9 (KHTML, like Gecko) Version/3.0 Safari/523.12.9

Opera(Opera 9.2 on Windows XP)

Opera/9.24 (Windows NT 5.1; U; zh-cn)

Mozilla(Firefox 2.0.11 on Windows XP)

... Windows NT 5.1; zh-CN; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11

InterNET Explorer (7.0 on Windows XP)

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

jQuery 非常巧妙的使用各瀏覽器各自不同的 user-agent 特性作為判斷。比如 Safari 中 “/webkit/” 是專(zhuān)有的、“/opera/” 也是只有 Opera 瀏覽器特有等等。這種驗(yàn)證方法可以在目前主流的瀏覽器上面,基本都可以準(zhǔn)確判斷。

就在這里打住了,jQuery 的確是非常優(yōu)秀的 Javascript 開(kāi)發(fā)框架之一。掌握它的確可以為自己的開(kāi)發(fā)添加不少的樂(lè)趣。我會(huì)陸續(xù)將自己閱讀 jQuery 框架的心得逐一的發(fā)上來(lái),請(qǐng)大家關(guān)注。

JavaScript技術(shù)用jQuery實(shí)現(xiàn)檢測(cè)瀏覽器及版本的腳本代碼,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国语自产一区视频 | 办公室韩国电影免费完整版 | 国产激情视频在线 | 男人狂躁进女人免费视频公交 | 日本中文一区 | 欧美精品色视频 | 色呦呦人人视频 | 特黄特色大片免费播放器试看 | 无码骚夜夜精品 | 米奇在线8888在线精品视频 | 国产精品永久AV无码视频 | 久久亚洲一级α片 | 久久精品麻豆国产天美传媒果冻 | 天天射天天爱天天干 | 成年私人影院网站在线看 | 亚洲精品色情婷婷在线播放 | aaa在线观看视频高清视频 | AV97最新无码喷水叫床 | 在线中文字幕网站 | 欧美506070 | 青青草原国产 | 荡乳乱公小说 | 九九热久久只有精品2 | 在线免费观看国产 | 成人影片下载网站 | 狠狠鲁 我喜欢 | 九九热精品视频在线观看 | 538在线播放 | 亚洲qvod图片区电影 | 无码国产伦一区二区三区视频 | 年轻的的小婊孑2中文字幕 你是淫荡的我的女王 | XXX国产麻豆HD | 美女全光末满18勿进 | 免费在线视频一区 | 麻豆精品传媒2021网站入口 | 一级毛片西西人体44rt高清 | 无限资源在线观看播放 | 久久精品热99看 | 99视频这里只有精品 | 亚洲精品久久久久AV无码林星阑 | 亚洲免费精品 |