如何解决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 举报,一经查实,本站将立刻删除。