javascript 檢測瀏覽器類型和版本的代碼
getBrowser : function(){
var browser = {
msie: false, firefox: false, opera: false, safari: false,
chrome: false, netscape: false, appname: 'unknown', version: 0
},
userAgent = window.navigator.userAgent.toLowerCase();
if ( /(msie|firefox|opera|chrome|netscape)\D+(\d[\d.]*)/.test( userAgent ) ){
browser[RegExp.$1] = true;
browser.appname = RegExp.$1;
browser.version = RegExp.$2;
} else if ( /version\D+(\d[\d.]*).*safari/.test( userAgent ) ){ // safari
browser.safari = true;
browser.appname = 'safari';
browser.version = RegExp.$2;
}
return browser.appname + browser.version;
}
對象/特征檢測法
該方法是一種判斷瀏覽器能力(而非瀏覽器的確切型號)的通用方法。大部分JS專家認為這個方法最合適,因為他們認為按照該方法所編寫的腳本是經(jīng)得起未來考驗的。
//獲取IE瀏覽器的版本號
//返回數(shù)值,顯示IE的主版本號
function getIEVer() {
var ua = navigator.userAgent; //獲取用戶端信息
var b = ua.indexOf("MSIE "); //檢測特殊字符串"MSIE "的位置
if (b < 0) {
return 0;
}
return parseFloat(ua.substring(b + 5, ua.indexOf(";", b))); //截取版本號字符串,并轉(zhuǎn)換為數(shù)值
}
alert(getIEVer()); //返回數(shù)值8(我的IE8)
如果更關(guān)注瀏覽器的能力而不在乎它實際的身份,就可以使用這種方法。
user-agent字符串檢測法
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了,其它幾種瀏覽器一般都會符合標準.有些客戶只需要符合IE和FF就已經(jīng)滿足了.那么我們可以這樣做:
var isIE = (navigator.appName == "Microsoft Internet Explorer");
判斷IE遠遠不止上面一種方法,可以使用IE更多特有的東西,如:window.ActiveXObject,document.all等,這些都屬于對象/特征檢測法了!通常要在不同的瀏覽器上寫不同的樣式(因為IE樣式解析也各有不同),那就得判斷版本了.可以這樣做
//獲取IE瀏覽器的版本號
//返回數(shù)值,顯示IE的主版本號
function getIEVer() {
var ua = navigator.userAgent; //獲取用戶端信息
var b = ua.indexOf("MSIE "); //檢測特殊字符串"MSIE "的位置
if (b < 0) {
return 0;
}
return parseFloat(ua.substring(b + 5, ua.indexOf(";", b))); //截取版本號字符串,并轉(zhuǎn)換為數(shù)值
}
alert(getIEVer()); //返回數(shù)值7
檢測操作系統(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
文章大部分內(nèi)容來自于《Javascript征途》
相關(guān)文章
input+select(multiple) 實現(xiàn)下拉框輸入值
昨天做一個網(wǎng)站時,需要實現(xiàn)下拉框能夠輸入,從功能上講是要實現(xiàn)用戶在文本框輸入值時,能夠從后讀出數(shù)據(jù)彈出下拉選項2009-05-05js 實現(xiàn) input type="file" 文件上傳示例代碼
在開發(fā)中,文件上傳必不可少但是它長得又丑、瀏覽的字樣不能換,一般會讓其隱藏點其他的標簽(圖片等)來時實現(xiàn)選擇文件上傳功能2013-08-08微信小程序開發(fā)之自定義tabBar的實現(xiàn)
這篇文章主要介紹了微信小程序開發(fā)之自定義tabBar的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09