如何在 iOS 上仅将 javascript 函数定位到 Safari < 6.0

Posted

技术标签:

【中文标题】如何在 iOS 上仅将 javascript 函数定位到 Safari < 6.0【英文标题】:How to target a javascript function only to safari < 6.0 on iOS 【发布时间】:2016-07-22 17:29:31 【问题描述】:

我正在使用一个库,该库在 ios(移动)上的 safari 5.1+ 到 5.9 之前存在错误,但在 iOS 上的 6.0(包括 6.0)之后它可以正常工作。

有问题的库确实允许删除产生错误的元素:

Turbolinks.ProgressBar.disable();

我怎么能告诉 javascript 将函数 removeProgressBar only 应用于 iOS 上的 safari :

function removeProgressBar 
  Turbolinks.ProgressBar.disable();

重要:

Safari 6.0 和 safari 6.0+ 不得在 iOS 和桌面 (OS X) 上受到影响(在这种情况下我不想删除进度条)

safari 5.1.x 桌面 (OS X) 不得受影响(在这种情况下我不想删除进度条)

不确定是否重要,但我正在使用引导程序 3

【问题讨论】:

【参考方案1】:

阅读这篇文章:Browser detection in JavaScript?。它有一些关于检测浏览器和版本的有用信息。不过要小心,因为这永远不可能 100% 可靠。

【讨论】:

谢谢,但似乎问题和答案可以检测浏览器,但不能检测它的版本,也不能检测它是在 iOS 上还是桌面上。这是我问题的两个具体需求。 我不认为您尝试做的事情是可能的,您最好尝试使用其他提供更多支持的东西。 实际上它对我的应用程序来说过于结构化,宁愿保留它。实际上,您的链接被肯纳贝克接受的答案将使我能够找到浏览器和版本。然后我必须找到一种方法来检测用户是在 iOS 上还是在桌面上:) 很高兴为您提供帮助,希望一切顺利:)

以上是关于如何在 iOS 上仅将 javascript 函数定位到 Safari < 6.0的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 上仅水平拉伸时垂直平铺 UIImage?

如何在iOS上仅在具有清晰颜色的模糊视图底部获得圆角?

OctoberCMS:如何仅将 javascript 从组件添加到页面一次

在 ios 6 上仅在一个视图中启用横向

javascript:尝试仅将数组展平一层

iOS 8 弹出框宽度 = 0 在 iPad 上仅在纵向模式下