日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

javascript关于检测浏览器和操作系统的问题

發(fā)布時間:2025/7/14 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javascript关于检测浏览器和操作系统的问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.方法學:

最好是檢測瀏覽器的最小版本,這樣才不會當版本升級之后不斷添加新的內容進去。

理想的方式:

if(isMinIE5){

//code

}

直接檢查準確的版本的缺點:

if(isMinIE5||isIE6){

  //code

}

但是當版本升級之后加入升級到版本10:

if(isMinIE5||isIE6||isIE7||isIE8||isIE9||isIE10){

//code

}

相對于直接檢測瀏覽器的最小版本更麻煩

2.具體的步奏以及注釋:(user-agent方法)

var sUserAgent = navigator.userAgent;??????????????????????????????????????????????????????????? ?//將user-agent字符串保存到本地變量之中去
var fAppVersion = parseFloat(navigator.appVersion);???????????????????????????????????? //獲得本地瀏覽器的版本

function compareVersions(sVersion1, sVersion2) {??????????????//用split()方法將兩個版本號轉換為數(shù)組,用 "."作為字符的分隔符
??? var aVersion1 = sVersion1.split(".");
??? var aVersion2 = sVersion2.split(".");
??

??? //保證兩個版本的各個數(shù)字的長度也一樣,否則在較短的一個版本末尾添加0至兩個版本的長度相等
??? if (aVersion1.length > aVersion2.length) {???????????
??????? for (var i=0; i < aVersion1.length - aVersion2.length; i++) {
??????????? aVersion2.push("0");
??????? }
??? } else if (aVersion1.length < aVersion2.length) {
??????? for (var i=0; i < aVersion2.length - aVersion1.length; i++) {
??????????? aVersion1.push("0");
??????? }??
??? }
???//比較兩個版本的大小,版本1大于版本2返回1,反之,返回-1,相等返回0
??? for (var i=0; i < aVersion1.length; i++) {

??????? if (aVersion1[i] < aVersion2[i]) {
??????????? return -1;
??????? } else if (aVersion1[i] > aVersion2[i]) {
??????????? return 1;
??????? }??
??? }
??
??? return 0;
}

?

//檢測Opera瀏覽器的版本
var isOpera = sUserAgent.indexOf("Opera") > -1;
var isMinOpera4 = isMinOpera5 = isMinOpera6 = isMinOpera7 = isMinOpera7_5 = false;
if (isOpera) {
??? var fOperaVersion;
??? if(navigator.appName == "Opera") {
??????? fOperaVersion = fAppVersion;???? //Opera沒有偽裝的情況
??? } else {
??????? var reOperaVersion = new RegExp("Opera (//d+//.//d+)");
??????? reOperaVersion.test(sUserAgent);
??????? fOperaVersion = parseFloat(RegExp["$1"]);???????//利用正則表達式判斷偽裝之后的真正版本號
??? }
??? isMinOpera4 = fOperaVersion >= 4;
??? isMinOpera5 = fOperaVersion >= 5;
??? isMinOpera6 = fOperaVersion >= 6;
??? isMinOpera7 = fOperaVersion >= 7;
??? isMinOpera7_5 = fOperaVersion >= 7.5;
}
var isKHTML = sUserAgent.indexOf("KHTML") > -1
????????????? || sUserAgent.indexOf("Konqueror") > -1
????????????? || sUserAgent.indexOf("AppleWebKit") > -1;

?

//檢測Safari瀏覽器的版本
var isMinSafari1 = isMinSafari1_2 = false;
var isMinKonq2_2 = isMinKonq3 = isMinKonq3_1 = isMinKonq3_2 = false;
if (isKHTML) {
??? isSafari = sUserAgent.indexOf("AppleWebKit") > -1;
??? isKonq = sUserAgent.indexOf("Konqueror") > -1;
??? if (isSafari) {
??????? var reAppleWebKit = new RegExp("AppleWebKit///(//d+(?://.//d*)?)");
??????? reAppleWebKit.test(sUserAgent);
??????? var fAppleWebKitVersion = parseFloat(RegExp["$1"]);
??????? isMinSafari1 = fAppleWebKitVersion >= 85;
??????? isMinSafari1_2 = fAppleWebKitVersion >= 124;
??? } else if (isKonq) {
??????? var reKonq = new RegExp("Konqueror///(//d+(?://.//d+(?://.//d)?)?)");
??????? reKonq.test(sUserAgent);
??????? isMinKonq2_2 = compareVersions(RegExp["$1"], "2.2") >= 0;
??????? isMinKonq3 = compareVersions(RegExp["$1"], "3.0") >= 0;
??????? isMinKonq3_1 = compareVersions(RegExp["$1"], "3.1") >= 0;
??????? isMinKonq3_2 = compareVersions(RegExp["$1"], "3.2") >= 0;
??? }
??
}

?

//檢測IE瀏覽器的版本
var isIE = sUserAgent.indexOf("compatible") > -1
?????????? && sUserAgent.indexOf("MSIE") > -1
?????????? && !isOpera;
?????????
var isMinIE4 = isMinIE5 = isMinIE5_5 = isMinIE6 = false;
if (isIE) {
??? var reIE = new RegExp("MSIE (//d+//.//d+);");
??? reIE.test(sUserAgent);
??? var fIEVersion = parseFloat(RegExp["$1"]);
??? isMinIE4 = fIEVersion >= 4;
??? isMinIE5 = fIEVersion >= 5;
??? isMinIE5_5 = fIEVersion >= 5.5;
??? isMinIE6 = fIEVersion >= 6.0;
}

?

//檢測Moz瀏覽器的版本
var isMoz = sUserAgent.indexOf("Gecko") > -1
??????????? && !isKHTML;
var isMinMoz1 = sMinMoz1_4 = isMinMoz1_5 = false;
if (isMoz) {
??? var reMoz = new RegExp("rv:(//d+//.//d+(?://.//d+)?)");
??? reMoz.test(sUserAgent);
??? isMinMoz1 = compareVersions(RegExp["$1"], "1.0") >= 0;
??? isMinMoz1_4 = compareVersions(RegExp["$1"], "1.4") >= 0;
??? isMinMoz1_5 = compareVersions(RegExp["$1"], "1.5") >= 0;
}

?

轉載于:https://www.cnblogs.com/lala314/p/5023233.html

總結

以上是生活随笔為你收集整理的javascript关于检测浏览器和操作系统的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。