在實際項目中,入到類似的在控制臺報錯問題,就是在進行校驗瀏覽器型號時,具體方法如下:
function getBrowserInfo(){
var Sys = {};
var ua = navigator.userAgent.toLowersCase();
var re = /(msie I firefox | chrome | opera | version).*?([\d.]+)/;
var m = ua.match(re);
Sys.browser = m[1].replace(/version/,"'safari'");
Sys.ver = m[2];
return;
}
根據此方法,就可以獲取到Sys里面有具體的瀏覽器信息了,可以直接調用此方法進行比較即可;
但是生產環境突然無法登陸,用戶反饋是利用IE11進行操作的,所以直接用IE11進行測試,具體報錯如下:
【 SCRIPT5007: 無法獲取未定義或null引用的屬性“1” 】
根據報錯顯示位置,定位在正則匹配后無法獲取到m;
經過解決,ie11瀏覽器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 CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Shuame; rv:11.0) like Gecko";
所以更換正則判斷:var re = /(msie I firefox | chrome | opera | version | rv:).*?([\d.]+)/;
這樣問題就解決了,ie11兼容性得到了很大改善,還有很多改善,未完待續。。。。。。。。。。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com