【一個小功能】從js判斷ie版本,淺談navigator對象的appName屬性


判斷IE版本主要的是獲取兩個屬性,a.當前瀏覽器名稱b.當前瀏覽器版本,為此不得不了解navigator對象。

先貼代碼

 1 window.onload = function() {
 2   var browser_name = navigator.appName, //獲取當前瀏覽器的名稱
 3       browser_version = navigator.appVersion, //獲取當前瀏覽器的平台和版本信息
 4       version_arr = browser_version.split(";"), //將平台版本信息按照;切割成數組
 5       version = version_arr[1].replace(/\s/g, ""); //取上一步數組下標為1的元素,去空格
 6      // console.log(browser_name);
 7      // console.log(browser_version);
 8      // console.log(version_arr);
 9      // console.log(version);
10 
11   if (browser_name == "Microsoft Internet Explorer") { //如果瀏覽器名稱為IE
12     if (version == "MSIE5.0" || version == "MSIE7.0") { //當前IE版本滿足其中任意一個執行以下操作
13 
14       alert(“為了您更好的體驗,請下載最新的瀏覽器”);
15     } 
16   } 
17 };

作為一個初次了解navigator對象的人,對於appName屬性(瀏覽器名稱),你的直觀感覺可能是,使用谷歌瀏覽器獲取的就是chrome,使用QQ瀏覽器獲取的名稱就是qqbrowser,不過很可惜,目前appName獲取的值只存在兩種,一是"Netscape"  (網景),二是“Microsoft Internet Explorer”  (IE)。

就當前瀏覽器例如谷歌,360,QQ瀏覽器,搜狗,IE11等,獲取的appName均為Netscape根據w3school的說明,此舉是便於瀏覽器之間的兼容性,不過對於互聯網發展史有所了解的人都知道,Netscape對於互聯網發展的所做出的卓出貢獻,所以對於部分網友所言,此舉也是出於對Netscape的緬懷之意也挺有道理。

包括IE10及IE以下低版本,appName獲取值均為Microsoft Internet Explorer如果你的電腦上安裝了IE11按F12調出控制台,使用仿真效果可以模擬各版本IE實際情況,如圖:

 

 

 

 

 

 

 

 

 

 

 

 

我們可以看看默認的IE11以及IE10部分版本的appName值情況

IE11 appName值

 

 

 

 

 

 

 

IE10 appName值

IE5 appName值

可以看出,版本低於11的IE版本,appName屬性均為Microsoft Internet Explorer。(話說網景正是因為IE才落魄,結果現在IE為了兼容,appName居然也為網景了....)

最后簡單說說Navigator的appVersion獲取版本號屬性,一般使用IE10及以下版本,獲取的值是這樣的

包括IE8,IE7等低版本,版本信息格式均為上圖,所以在獲取版本的方法 上使用了split(“;”)來進行切割,獲取下標1的元素即可判斷版本。

但需要注意的是,IE11以及當下的主流瀏覽器版本信息格式並不與上圖相同,所以不同瀏覽器具體抓取方法請根據實際情況去判斷。如下圖為谷歌的版本信息

大概就寫這么多吧,我的第一篇博客文。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM