其一,是使用使用瀏覽器的功能屬性。比如檢測瀏覽器是否支持 getElementById 方法就可以使用 " /> 538久久视频在线,无码不卡中文字幕在线观看,中国成人在线视频

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

用jQuery實現檢測瀏覽器及版本的腳本代碼

如何用 Javascript 檢測瀏覽器似乎是老生常談的問題。根據本人的經驗,使用 Javascript 檢測瀏覽器無非使用兩大類的方法。

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

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

雖然這樣的檢測無法得知用戶具體使用哪一種瀏覽器,不過開發者根據瀏覽器的功能判斷是否兼容自己的代碼是經得起考驗的。如果關注瀏覽器的實際功能而不在乎它的實際身份,就可以使用這種方法。

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

話說到此可能有些偏題。使用過 jQuery 的朋友都知道,使用 jQuery 本身的 brower 方法就可以準確的判斷用戶在使用那種瀏覽器甚至是版本。好的開發庫使用者都想了解其中的一些其實現機制,那么,jQuery 是如何做到這些的?

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

坦白說,起先我對短短的五行代碼就可以判斷瀏覽器的種類和版本感到非常的驚奇。在《Javascript 高級程序設計》一書中,作者甚至使用單獨的章節描述的如何使用 Javascript 判斷瀏覽器和操作系統。但通過閱讀其代碼(其實并不難),我頓時有中恍然大悟的感覺。廢話不多說,貼上代碼。

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)
};

說到這里,其實有經驗的 Javascript 開發人員已經知道了其中的奧秘。是的,jQuery 使用的是正則判斷瀏覽器的種類和版本。做得相當的漂亮!

首先它將 user-agent 統一成小寫,然后使用正則逐步的匹配是哪種瀏覽器。有關正則方面相關的信息,可以參考這里。不過,有人肯定會懷疑這樣的判斷是否正確。那么我們先來看下下面四個主流瀏覽器的 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/” 是專有的、“/opera/” 也是只有 Opera 瀏覽器特有等等。這種驗證方法可以在目前主流的瀏覽器上面,基本都可以準確判斷。

就在這里打住了,jQuery 的確是非常優秀的 Javascript 開發框架之一。掌握它的確可以為自己的開發添加不少的樂趣。我會陸續將自己閱讀 jQuery 框架的心得逐一的發上來,請大家關注。

JavaScript技術用jQuery實現檢測瀏覽器及版本的腳本代碼,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 精品一区二区三区在线成人 | 欧美牲交A欧美牲交 | 午夜亚洲WWW湿好爽 午夜亚洲WWW湿好大 | 亚洲大片免费观看 | 亚洲人视频在线 | 久久香蕉国产线看观看精品 | 国产传媒精品1区2区3区 | 99热久这里都是精品小草 | 久久人妻少妇嫩草AV无码 | 亚洲国产欧美国产综合在线 | 我和妽妽在厨房里的激情区二区 | 亚洲色偷偷偷网站色偷一区人人藻 | 国产AV果冻传奇麻豆 | 亚洲精品福利一区二区在线观看 | 国产无线乱码一区二三区 | 亚洲黄色在线 | 丝袜美女被啪啪不带套漫画 | 国产白丝精品爽爽久久蜜臀 | 小雪奶水涨翁工帮吸的推荐语录 | 文中字幕一区二区三区视频播放 | 欧美午夜精品久久久久久浪潮 | 无码欧美毛片一区二区三在线视频 | 亚洲男人的天堂久久精品麻豆 | 日韩一区二区在线免费观看 | 久久久久激情免费观看 | 亚洲三级视频在线 | 亚洲色图在线播放 | 午夜噜噜噜私人影院在线播放 | 久久婷婷五月综合色情 | 毛片免费观看视频 | 成人无码精品一区二区在线观看 | 亚洲无AV在线中文字幕 | 夜夜骑夜夜欢 | 欧美精品一卡二卡 | 诱人的女邻居9中文观看 | 婷婷久久无码欧美人妻 | 妺妺窝人体色777777野大粗 | 吃奶摸下的激烈免费视频 | 日韩精品特黄毛片免费看 | 麻豆天美国产一区在线播放 | 年轻的的小婊孑2中文字幕 你是淫荡的我的女王 |