2013-07-29 38 views
1

非Webkit Opera在某些功能中为very specific,所以通常通过JavaScript the following way检测到。如何通过JavaScript检测旧Opera(非Webkit,非Next,版本14-)

但是,Opera Next几乎渗透到Google Chrome克隆中。

我该如何定位旧的Opera而不是将目标定位在Opera Next? PS:我真的知道,浏览器检测吸收和功能检测规则。但我希望通过一个小型的浏览器检测补丁程序来更新大型和正在运行的项目,而不是将大量代码重写为特征检测范例。

回答

2

我发现问题来源。在该项目中,浏览器检测结果不佳。如果您在the link given in the question中完全检测到Opera,则Opera Next未检测为Opera,因此不会执行旧Opera特定的代码,而是运行Chrome特定代码。

!!window.opera;      // true in old Opera, false in Opera Next 

navigator.userAgent.indexOf("Opera");// ------- the same -------- 

PS:还好,我有很多我的项目的测试,所以我可以告诉大家,在新歌剧的东西正好担任谷歌浏览器。

一段代码引起的问题试图检测旧歌剧院和Opera下一页:

/(Opera|OPR)/.test(navigator.userAgent) 

结论:歌剧迁移做的非常好,没有什么应该在你的项目中打破。不要检测Opera Next,只需像往常一样对待Google Chrome即可。

更新:以前的Opera版本已经从caniuse.com去除了