判斷原理:
JavaScript是前端開發的主要語言,我們可以透過編寫JavaScript程式來判斷瀏覽器的類型及版本。 JavaScript判斷瀏覽器類型一般有兩種辦法,一種是根據各種瀏覽器獨有的屬性來分辨,另一種是透過分析瀏覽器的userAgent屬性來判斷的。在許多情況下,數值判斷瀏覽器類型之後,還需判斷瀏覽器版本才能處理相容性問題,而判斷瀏覽器的版本一般只能透過分析瀏覽器的userAgent才能知道。
瀏覽器類型
⑴瀏覽器特有屬性
⑵根據userAgent
瀏覽器版本
⑴根據userAgent
對於手機瀏覽器判斷
1.如何判斷是否為行動終端利用正規match,
匹配navigator.userAgent是否含有字串AppleWebKit*****Mobile
安卓qq瀏覽器HD版只有AppleWebKit
2手機語言版本的判斷
使用navigator.browserLanguage 可得出windows phone語言版本,
當然可惡的小型手機語言版本也有相容性的差異,相容於Mozilla,以及AppleWebKit核心的瀏覽器存取其語言版本,它會列出navigator.language
CODE:
複製代碼代碼如下:
<script type="text/javascript">
var browser={
versions:function(){
var u = navigator.userAgent, app = navigator.appVersion;
return { //行動終端瀏覽器版本資訊
trident: u.indexOf('Trident') > -1, //IE內核
presto: u.indexOf('Presto') > -1, //opera內核
webKit: u.indexOf('AppleWebKit') > -1, //蘋果、Google內核
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐內核
mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否為行動終端
ios: !!u.match(//(i[^;]+;( U;)? CPU.+Mac OS X/), //ios終端機
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android終端機或uc瀏覽器
iPhone: u.indexOf('iPhone') > -1 , //是否為iPhone或QQHD瀏覽器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp: u.indexOf('Safari') == -1 //是否web應該程序,沒有頭部與底部
};
}(),
language:(navigator.browserLanguage || navigator.language).toLowerCase()
}
document.writeln("語言版本: "+browser.language);
document.writeln(" 是否為行動終端: "+browser.versions.mobile);
document.writeln(" ios終端: "+browser.versions.ios);
document.writeln(" android終端: "+browser.versions.android);
document.writeln(" 是否為iPhone: "+browser.versions.iPhone);
document.writeln(" 是否iPad: "+browser.versions.iPad);
document.writeln(navigator.userAgent);
</script>
比較特別的地方
UC瀏覽器沒有安卓報頭,只回傳:linux ,這裡粗略的根據linux來判斷是安卓(前提必須滿足是移動終端,UC這點是滿足的)
安卓QQ瀏覽器HD版檢測的結果是:mac, Safari