【问题标题】:How to detect Blink in Chrome如何在 Chrome 中检测闪烁
【发布时间】:2014-01-06 11:21:45
【问题描述】:

有什么方法可以检测到用户使用的是 Blink 或 Webkit 驱动的 Chrome 引擎?顺便说一句,我也很好奇我是否可以在某个地方检查我的浏览器是否闪烁。

【问题讨论】:

  • 你想在哪里检查这个? Javascript 或服务器端编程语言。

标签: google-chrome webkit chromium blink


【解决方案1】:

Blink 是 Chrome 28+。 因此,如果您已经通过其用户代理检测到 Chrome,您可以检查:version >= 28 虽然如果用户代理被欺骗,显然不完全可靠。

如需另一种更可靠的方法,您可以检查 chrome.notifications API 状态,该状态已通过 Blink/Chrome28+(在 ChromeOS、Windows、Mac 和 Android 4.4 上)变得可用/稳定

请参阅此answer 以获取参考,此documentation 了解详细信息。

更新:之前的想法既复杂又不可靠。我删除了它。

我遇到了 Chrome 28 中添加的一项功能(即CSS.supports),它更简单、更简洁:

if ((window.chrome || (window.Intl && Intl.v8BreakIterator)) && 'CSS' in window){
//Blink Engine
}

更新 2:添加了一项额外检查,因为某些 Blink 浏览器(例如 Opera Mobile 或 Maxthon)缺少 window.chrome 对象。必须进行 v8 功能检查才能涵盖截至 2014 年 12 月的所有当前 Blink 引擎浏览器。

为了完整起见,您也要求提供服务器端编程语言: 在服务器端甚至 JS 最终,只需寻找 WebKit/537.36。只有 Blink 用户代理才有该 Webkit 版本。据我所知,没有发布带有该版本号的官方 Safari 版本。但是,请注意 IEMobile、Trident 或 Edge 令牌,因为 Windows IE now imitate Android and Blink。

【讨论】:

  • 那么,'537.36' 是否会成为 Blink 的可靠检查,现在也适用于 Chromium 和 Opera?
  • @ShaharOr 如果 userAgent 没有被欺骗,是的。您可以从 合法 用户那里看到的唯一潜在误报情况是,他们是否在移动设备上使用桌面模式,这可能会欺骗 Blink Agent。
  • @ShaharOr 仅供参考,刚刚测试过——window.CSS 的测试也适用于带有 Blink 的 Opera :)
猜你喜欢
  • 1970-01-01
  • 2015-10-27
  • 2017-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-18
  • 2021-01-10
相关资源
最近更新 更多