javascript檢測(cè)瀏覽器類型和版本的代碼
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
如果對(duì)javascript了解不是特別深入的話,很容易就會(huì)寫出不兼容的代碼(就像我),這時(shí)候就得判斷瀏覽器了。比如事件偵聽、一些鼠標(biāo)和鍵盤事件、Range等,一些都會(huì)不一樣.下面列出幾種常用的檢測(cè)瀏覽器方法,以饗觀眾! 對(duì)象/特征檢測(cè)法該方法是一種判斷瀏覽器能力(而非瀏覽器的確切型號(hào))的通用方法。大部分JS專家認(rèn)為這個(gè)方法最合適,因?yàn)樗麄冋J(rèn)為按照該方法所編寫的腳本是經(jīng)得起未來考驗(yàn)的。 //獲取IE瀏覽器的版本號(hào) //返回?cái)?shù)值,顯示IE的主版本號(hào) function getIEVer() { var ua = navigator.userAgent; //獲取用戶端信息 var b = ua.indexOf("MSIE "); //檢測(cè)特殊字符串"MSIE "的位置 if (b < 0) { return 0; } return parseFloat(ua.substring(b + 5, ua.indexOf(";", b))); //截取版本號(hào)字符串,并轉(zhuǎn)換為數(shù)值 } alert(getIEVer()); //返回?cái)?shù)值8(我的IE8) 如果更關(guān)注瀏覽器的能力而不在乎它實(shí)際的身份,就可以使用這種方法。 user-agent字符串檢測(cè)法user-agent字符串提供了關(guān)于Web瀏覽器的大量信息,包括瀏覽器的名稱和版本。 var ua = navigator.userAgent.toLowerCase(); //獲取用戶端信息 var info = { ie: /msie/.test(ua) && !/opera/.test(ua), //匹配IE瀏覽器 op: /opera/.test(ua), //匹配Opera瀏覽器 sa: /version.*safari/.test(ua), //匹配Safari瀏覽器 ch: /chrome/.test(ua), //匹配Chrome瀏覽器 ff: /gecko/.test(ua) && !/webkit/.test(ua) //匹配Firefox瀏覽器 }; (info.ie) && alert("IE瀏覽器"); (info.op) && alert("Opera瀏覽器"); (info.sa) && alert("Safari瀏覽器"); (info.ff) && alert("Firefox瀏覽器"); (info.ch) && alert("Chrome瀏覽器"); 通常我們做得最多的,就是判斷是否是IE了,其它幾種瀏覽器一般都會(huì)符合標(biāo)準(zhǔn).有些客戶只需要符合IE和FF就已經(jīng)滿足了.那么我們可以這樣做: var isIE = (navigator.appName == "Microsoft Internet Explorer"); 判斷IE遠(yuǎn)遠(yuǎn)不止上面一種方法,可以使用IE更多特有的東西,如:window.ActiveXObject,document.all等,這些都屬于對(duì)象/特征檢測(cè)法了!通常要在不同的瀏覽器上寫不同的樣式(因?yàn)镮E樣式解析也各有不同),那就得判斷版本了.可以這樣做 //獲取IE瀏覽器的版本號(hào) //返回?cái)?shù)值,顯示IE的主版本號(hào) function getIEVer() { var ua = navigator.userAgent; //獲取用戶端信息 var b = ua.indexOf("MSIE "); //檢測(cè)特殊字符串"MSIE "的位置 if (b < 0) { return 0; } return parseFloat(ua.substring(b + 5, ua.indexOf(";", b))); //截取版本號(hào)字符串,并轉(zhuǎn)換為數(shù)值 } alert(getIEVer()); //返回?cái)?shù)值7 檢測(cè)操作系統(tǒng):var isWin = (navigator.userAgent.indexOf("Win") != -1); //如果是Windows系統(tǒng),則返回true var isMac = (navigator.userAgent.indexOf("Mac") != -1); //如果是Macintosh系統(tǒng),則返回true var isUnix = (navigator.userAgent.indexOf("X11") != -1); //如果是Unix系統(tǒng),則返回true var isLinux = (navigator.userAgent.indexOf("Linux") != -1); //如果是Linux系統(tǒng),則返回true 該文章在 2011/11/29 9:27:40 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |