在原來判斷瀏覽器是否是ie時,我們可以根據navigator.userAgent中時候有MSIE,但是IE11進行變革,userAgent中不在包含MSIE字段,
#在實際專案中,入到類似的在控制台報錯問題,就是在進行校驗瀏覽器型號時,具體方法如下:
function getBrowserInfo(){
# var Sys = {
# var Sys = {## var ua = navigator.userAgent.toLowersCase(); var re = /(msie I firefox | chrome | opera | version).*?([\d.]+)/;| opera | 」.*?([\d.]+)/; # var m = ua.match(re);
Sys.browser = m[1].replace(/version/,"'sfari'");#a]; [2];
return;
}
}
依此方法,就可以獲取到Sys資訊了,裡面有的呼叫器資訊,可以直接瀏覽器資訊即可;
但是生產環境突然無法登陸,用戶回饋是利用IE11進行操作的,所以直接用IE11進行測試,具體報錯如下:
7 RIP
## 7 RIP## 77: null引用的屬性「1」 】
根據報錯顯示位置,定位在正則匹配後無法獲取到m;
瀏覽器navigator.userAgent改變,具體變為:
"Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; NET 29; NET4.0C; .NET4.0E; Shuame; rv:11.0) like Gecko";
所以更換正規判斷:var re = /(msie I firefox | chrome opera: 更換正規判斷* )*. ?([\d.]+)/;
### 這樣問題就解決了,ie11相容性得到了很大改善,還有很多改善,未完待續。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 ###以上是IE11中navigator.userAgent變化的實例代碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!