我知道你应该在可能的地方做特征检测,但是你能在Javascript中检测到浏览器是否是Microsoft Edge浏览器吗?
我维护了一个旧产品,我想显示一个警告,一些功能可能会被破坏,而不需要投入大量时间来修复旧代码。
发布于 2015-10-05 05:04:14
尝试检测功能,而不是特定的浏览器。它更适合未来。只有极少数情况下才应该使用浏览器检测。
有了这个方法:一种选择是使用库(有许多错综复杂的User Agent字符串),或者手动解析window.navigator.userAgent。
使用解析器库的
# https://github.com/faisalman/ua-parser-js.
var parser = new UAParser();
var result = parser.getResult();
var name = result.browser.name;
var version = result.browser.version;使用Javascript的原始方法
# Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) \
# Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136
window.navigator.userAgent.indexOf("Edge") > -1发布于 2017-10-25 13:01:10
下面是检测Edge浏览器的简单脚本
if (/Edge/.test(navigator.userAgent)) {
alert('Hello Microsoft User!');
}解释:
/Edge/搜索字符串'Edge‘的正则表达式--然后我们根据'navigator.userAgent’属性对其进行测试
发布于 2015-07-30 19:35:15
useragent字符串包含Edge/ 12.9600,其中12.9600是我测试的版本号。这与Internet Explorer在“Edge”模式下的用户代理字符串完全不同。
Edge的用户代理字符串:
Mozilla/5.0 (Windows NT 10.0;Win64;x64) AppleWebKit/537.36 (KHTML,像壁虎一样)Chrome/42.0.2311.135Safari/537.36边缘/12.9600
边缘模式下IE10的用户代理字符串:
像壁虎一样的
Mozilla/5.0 (Windows NT 6.3;WOW64;Trident/7.0;.NET4.0E;.NET4.0C;InfoPath.3;.NET CLR 3.5.30729;.NET CLR 2.0.50727;.NET CLR 3.0.30729;Tablet PC 2.0;rv:11.0)
因此,当使用javascript时,只需检查用户代理字符串中的“Edge”。当您还测试其他浏览器时,请确保先检查Edge,否则会得到误报(例如Chrome或Safari...)
https://stackoverflow.com/questions/31721250
复制相似问题