判斷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以及當下的主流瀏覽器版本信息格式並不與上圖相同,所以不同瀏覽器具體抓取方法請根據實際情況去判斷。如下圖為谷歌的版本信息
大概就寫這么多吧,我的第一篇博客文。