日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

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

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

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()方法將兩個版本號轉換為數組,用 "."作為字符的分隔符
??? var aVersion1 = sVersion1.split(".");
??? var aVersion2 = sVersion2.split(".");
??

??? //保證兩個版本的各個數字的長度也一樣,否則在較短的一個版本末尾添加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关于检测浏览器和操作系统的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

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