jquery uaMatch源代碼
更新時(shí)間:2011年02月14日 18:33:07 作者:
在jQuery 中只要用行uaMatch()這個函數(shù)。用到的關(guān)鍵點(diǎn)有:1.regExp.exec(str);2.navigator.userAgent;
復(fù)制代碼 代碼如下:
// Useragent RegExp
rwebkit = /(webkit)[ \/]([\w.]+)/,
ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
rmsie = /(msie) ([\w.]+)/,
rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
// Keep a UserAgent string for use with jQuery.browser
userAgent = navigator.userAgent,
// For matching the engine and version of the browser
browserMatch,
// Use of jQuery.browser is frowned upon.
// More details: http://docs.jquery.com/Utilities/jQuery.browser
uaMatch: function( ua ) {
ua = ua.toLowerCase();
var match = rwebkit.exec( ua ) ||
ropera.exec( ua ) ||
rmsie.exec( ua ) ||
ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
[];
return { browser: match[1] || "", version: match[2] || "0" };
}
browserMatch = jQuery.uaMatch( userAgent );
if ( browserMatch.browser ) {
jQuery.browser[ browserMatch.browser ] = true;
jQuery.browser.version = browserMatch.version;
}
分析:瀏覽器之間的兼容性問題,這個一個歷史遺留問題。痛苦的是,作為一個前端開發(fā)人員得為這個兼容性問題買單。我們做開發(fā)時(shí),往往要為每種瀏覽器作出局部的代碼調(diào)整才能在相應(yīng)的瀏覽器中良好的運(yùn)行。我所知道的方法有兩種:1.瀏覽器檢測;2.對象檢測。
在jQuery 中只要用行uaMatch()這個函數(shù)。用到的關(guān)鍵點(diǎn)有:1.regExp.exec(str);2.navigator.userAgent;
一,regExp.exec(str);用正則表達(dá)式來在字符串中查找,并返回一個數(shù)組,這個數(shù)組的0元素是整個正則匹配,1元素是第一個子匹配,2元素是第二個子匹配,如此類推。
二,navigator.userAgent:是javascript BOM的重要的對象之一,它主要用來返回當(dāng)前的瀏覽器和操作系統(tǒng)的信息。
例如:firefox的navigator.userAgetn 的字符串:"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13"
IE8的navigator.userAgetn的字符串:"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)".
從各個瀏覽器的正則表達(dá)式可知,第一個子匹配為瀏覽器的名字,第二個為版本。
相關(guān)文章
jQuery實(shí)現(xiàn)單行文字間歇向上滾動源代碼
使用jquery實(shí)現(xiàn)的文字向上滾動效果多的不計(jì)其數(shù)吧,間歇向上滾動卻不是那么的多,所以本文簡單的實(shí)現(xiàn)了一個,感興趣的朋友可以參考下哈2013-06-06Jquery index()方法 獲取相應(yīng)元素索引值
昨天做一個Jqery效果,要獲取相應(yīng)元素的索引值,暈,又忘記了。現(xiàn)在記錄下來,以后再次忘記好查怎么獲取相應(yīng)元素的索引值2012-10-10jQuery編輯器KindEditor4.1.4代碼高亮顯示設(shè)置教程
接下來介紹下編輯器KindEditor4.1.4代碼高亮顯示設(shè)置:加載需要的JS和CSS文件/編輯器初始化設(shè)置后,在里面加prettyPrint等等,感興趣的你可以參考下本文2013-03-03JQuery 浮動導(dǎo)航欄實(shí)現(xiàn)代碼
JQuery 浮動導(dǎo)航欄實(shí)現(xiàn)代碼,具體的可以根據(jù)需要自己修改。2009-08-08CSS+Jquery實(shí)現(xiàn)頁面圓角框方法大全
前不久做項(xiàng)目,要用到大量的頁面圓角的框塊,以前實(shí)現(xiàn)的時(shí)候都是用圖片做背景之類的方法,那種方法對于少數(shù)的還是比較可行的,但是當(dāng)涉及到整個項(xiàng)目都要用 到這樣的效果時(shí)就顯得不夠優(yōu)化和簡練了。2009-12-12使用jQuery.form.js/springmvc框架實(shí)現(xiàn)文件上傳功能
這篇文章主要介紹了使用jQuery.form.js/springmvc框架實(shí)現(xiàn)文件上傳功能,非常具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-05-05jQuery實(shí)現(xiàn)輸入框的放大和縮小功能示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)輸入框的放大和縮小功能,涉及jQuery基于事件響應(yīng)的頁面元素屬性動態(tài)變換相關(guān)操作技巧,需要的朋友可以參考下2018-07-07