IE11中navigator.userAgent的變化


    在原來判斷瀏覽器是否是ie時,我們可以根據navigator.userAgent中時候有MSIE,但是IE11進行變革,userAgent中不在包含MSIE字段,

在實際項目中,入到類似的在控制台報錯問題,就是在進行校驗瀏覽器型號時,具體方法如下:

    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兼容性得到了很大改善,還有很多改善,未完待續。。。。。。。。。。。。。。。。。。。


免責聲明!

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



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