您如何通过其 userAgent 区分新的基于 Blink 的 Edge 与旧的 EdgeHTML?

How can you tell new Blink based Edge apart from old EdgeHTML via its userAgent?

随着 2018 Microsoft Edge team announcement Edge 正在将浏览器引擎更改为 Blink,如何通过查看 User-Agent 字符串来补偿 EdgeHTML 特定的错误和怪异现象并不明显(对于您无法检测到的怪异现象)任何更好的方法)。当这种需求出现时,是什么可靠地区分了这两个浏览器引擎?

如果您的网站被定位为 UA string overrides,您不能:根据这些覆盖的内容,user-agent 可能会伪装成旧的 Edge,或者相应的 Chrome 浏览器.

否则,技巧是扫描 navigator.userAgent 以查找子字符串 Edg/(斜杠前没有尾随 e),这是它的默认设置。相反,旧的 Edge 会在那里有 Edge/。示例代理字符串:

  • 新边(默认):Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3763.0 Safari/537.36 Edg/75.0.131.0
  • 老边(善意的谎言):Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763
  • Chrome(善意的谎言):Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3763.0 Safari/537.36