JavaScript 檢測(cè)瀏覽器類型和版本號(hào)
■知識(shí)點(diǎn)
檢測(cè)瀏覽器類型和版本就比較容易,用戶只需要根據(jù)不同瀏覽器類型匹配特殊信息即可。
■實(shí)例設(shè)計(jì)
【示例1】下面的方法能夠檢測(cè)當(dāng)前主流瀏覽器類型,包括IE、Opera、Safari、Chrome和Firefox瀏覽器。
var ua = navigator.userAgent.toLowerCase ();
var info ={
ie : /msie/.test(ua) && !/opera/.test (ua),
op : /opera/.test(ua〉,
sa : /version.*safari/.test(ua),
ch : /chrome/.test(ua),
ff : /gecko/.test(ua) && !/webkit/.test(ua)
};
在腳本中調(diào)用該對(duì)象的屬性,如果是對(duì)應(yīng)類型瀏覽器,返回true,否則就返回false。
(info, ie) &&console. log ("IE 瀏覽器");
(info. op) &&console. log ("Opera 瀏覽器");
(info. sa) &&console. log ("Safari 瀏覽器");
(info. ff) &&console. log ("Firefox 瀏覽器");
(info. ch) &&console. log ("Chrome 瀏覽器");
【示例2】通過解析navigator對(duì)象的userAgent屬性可以獲得瀏覽器的完整版本號(hào)。針對(duì)IE瀏覽器來說,它是在"MSIE"字符串后面帶一個(gè)空格,然后跟隨版本號(hào)及分號(hào)。因此,可以設(shè)計(jì)一個(gè)如下的函數(shù)獲取IE的版本號(hào)。
//獲取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ù)值
}
直接調(diào)用該函數(shù)即可獲取當(dāng)前IE瀏覽器的版本號(hào)。
console.log (getlEVer() ); //返回類似數(shù)值:10
IE瀏覽器版本眾多,一般可以使用大于某個(gè)數(shù)字的形式進(jìn)行范圍匹配,因?yàn)闉g覽器是向后兼容的。
【示例3】使用同樣的方法可以檢測(cè)其他類型瀏覽器的版本號(hào),下面的示例是檢測(cè)Firefox瀏覽器的版本號(hào)。
function getFFVer(){
var ua = navigator.userAgent;
var b = ua.indexOf("Firefox/");
if(b < 0) {
return 0;
}
return parseFloat(ua.substring (b + 8,ua.lastlndexOf("\ .")));
}
console.log (getFFVer () ) ; //返回類似數(shù)值: 64
對(duì)于Opera等瀏覽器,可以使用navigator.userAgent屬性來獲取版本號(hào),只不過其用戶端信息與IE有所不同,如Opera/9.02 (Windows NT 5.1; U; en),根據(jù)這些格式可以獲取其版本號(hào)。
點(diǎn)擊加載更多評(píng)論>>