微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Angular 获取浏览器名称和版本

如何解决Angular 获取浏览器名称和版本

在 Internet Explorer 和 Microsoft Edge 上运行时,我需要打印浏览器名称和版本。以下代码适用于 chrome,但不适用于 IE 和 Edge。那么有人可以解释一下下面的代码(这些字符是什么 (?=/))/?\s*(\d+)/i),tem ..etc)。这段代码是别人写的。 比你

getbrowserVersion(){

      var userAgent= navigator.userAgent,tem,matchTest= userAgent.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];

      if(/trident/i.test(matchTest[1])){

          tem=  /\brv[ :]+(\d+)/g.exec(userAgent) || [];

          return 'IE '+(tem[1] || '');

      }

      if(matchTest[1]=== 'Chrome'){

          tem= userAgent.match(/\b(OPR|Edge)\/(\d+)/);

          if(tem!= null) return tem.slice(1).join(' ').replace('OPR','Opera');

      }

      matchTest= matchTest[2]? [matchTest[1],matchTest[2]]: [navigator.appName,navigator.appVersion,'-?'];

      if((tem= userAgent.match(/version\/(\d+)/i))!= null) matchTest.splice(1,1,tem[1]);

      return matchTest.join(' ');

}

解决方法

const isIEOrEdge = /msie\s|trident\/|edge\//i.test(window.navigator.userAgent)

我上面用过请尝试一次

,

您可以使用像“Bowser”这样的库:https://github.com/lancedikson/bowser

const browser = Bowser.getParser(window.navigator.userAgent);
console.log(browser.getBrowser());

// outputs
{
  name: "Internet Explorer"
  version: "11.0"
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。