【问题标题】:Why is the User-Agent of Opera mini printed strangely on iPad?为什么 Opera mini 的 User-Agent 在 iPad 上打印奇怪?
【发布时间】:2018-07-24 10:34:53
【问题描述】:

我使用 JavaScript 在 iPad 上打印 Opera mini 的 User-Agent 字符串,如下所示。

alert(navigator.userAgent);

结果是

Mozilla/5.0 (iPad; CPU OS 11_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15G77

我不知道如何检测到这个是 Opera Mini 的浏览器。

【问题讨论】:

  • @HyyanAboFakher 我编辑了问题。
  • 请检查是否有帮助:github.com/lancedikson/bowser/issues/158
  • Opera Mini 的哪个版本? ...它使用旧的 preston 引擎还是新的 webkit
  • 更重要的是,你需要检测它是否是Opera? ...此外,Opera 16 使用 Webkit 引擎运行,因此不同的用户代理,...他们更改的最可能原因是通过许多 Web 服务器阻止 Opera mini 不兼容 CSS3/HTML5(Microsoft用 Windows phone 做了类似的把戏)。 ...所有这一切都只是说明了为什么欺骗用户代理,而是检测功能。

标签: javascript browser user-agent opera-mini


【解决方案1】:

为什么 Opera mini 的 User-Agent 在 iPad 上打印奇怪?

Opera 16 使用 Webkit 引擎运行,因此用户代理不同。

借助 Webkit,它现在支持旧版本(使用 Presto 引擎)不支持的许多功能。

他们改变它的原因,最喜欢被许多会阻止旧版 Opera 的网络服务器获取,他们经常在这些服务器上欺骗用户代理,并且在发现 opera mini,将其阻止为已过时(注意,微软在 Windows phone 上做了类似的把戏)

...我怎样才能检测到这个是 Opera Mini 的浏览器

简短的回答,你不能

更长的答案,有 -o-prefocus、媒体查询黑客等 CSS 功能,您可以在这里找到其中的许多功能:http://browserhacks.com/

这些的缺点是,当该浏览器特定属性消失时,您的检测也会消失。

相反,采用更具前瞻性的方式并检测功能,例如@supports()

在这个问题上,有一些关于如何使用 CSS 和脚本的更感兴趣的阅读

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 1970-01-01
    相关资源
    最近更新 更多