有什么方法可以检测到用户使用的是 Blink 或 Webkit 驱动的 Chrome 引擎吗?顺便说一句,我也很好奇我是否可以在某个地方检查我的浏览器是否闪烁。
1 回答
Blink 是 Chrome 28+。因此,如果您已经通过其用户代理检测 Chrome,您可以检查:version >= 28
虽然用户代理被欺骗,但显然不完全可靠。
对于另一种更可靠的方法,您可以检查chrome.notifications API 状态,该状态通过 Blink/Chrome28+ 变得可用/稳定(在 ChromeOS、Windows 和 Mac 上,然后是 Android 4.4)
有关参考,请参阅此答案,有关详细信息,请参阅此文档。
更新:之前的想法既复杂又不可靠。我删除了它。
我遇到了 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 现在模仿Android 和 Blink。