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

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

先貼代碼數組

 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的緬懷之意也挺有道理。app

包括IE10及IE如下低版本,appName獲取值均爲Microsoft Internet Explorer若是你的電腦上安裝了IE11按F12調出控制檯,使用仿真效果能夠模擬各版本IE實際狀況,如圖:spa

 

 

 

 

 

 

 

 

 

 

 

 

咱們能夠看看默認的IE11以及IE10部分版本的appName值狀況code

IE11 appName值對象

 

 

 

 

 

 

 

IE10 appName值blog

IE5 appName值博客

能夠看出,版本低於11的IE版本,appName屬性均爲Microsoft Internet Explorer。(話說網景正是由於IE才落魄,結果如今IE爲了兼容,appName竟然也爲網景了....)it

最後簡單說說Navigator的appVersion獲取版本號屬性,通常使用IE10及如下版本,獲取的值是這樣的

包括IE8,IE7等低版本,版本信息格式均爲上圖,因此在獲取版本的方法 上使用了split(「;」)來進行切割,獲取下標1的元素便可判斷版本。

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

大概就寫這麼多吧,個人第一篇博客文。

相關文章
相關標籤/搜索