欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

IE11中navigator.userAgent变化的实例代码

程序员文章站 2022-05-28 12:39:04
...
在原来判断浏览器是否是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兼容性得到了很大改善,还有很多改善,未完待续。。。。。。。。。。。。。。。。。。。

以上就是IE11中navigator.userAgent变化的实例代码的详细内容,更多请关注其它相关文章!