gpt4 book ai didi

javascript - 有没有办法在过滤掉 iOS Chrome、Firefox 和其他浏览器的同时检测 iOS safari?

转载 作者:行者123 更新时间:2023-11-28 07:29:50 25 4
gpt4 key购买 nike

因此,对于那些从事 iOS Web 应用程序工作的人来说,可能知道,由于 Apple 的政策,iOS 上的 Chrome 和其他移动浏览器使用了非常古老的 javascript 引擎。这就是为什么我们需要禁用 Chrome 和其他 iOS 的非 safari 浏览器的一些渲染。

我一直在阅读this question那里没有有用的答案。以下是我的一些方法(失败):

使用 is_iOS = navigator.userAgent.match(/(iPad|iPhone|iPod)/g) 检测浏览器是否在 iOS 上。然后使用:

is_FF = navigator.userAgent.match(/(firefox)/g)is_Chrome = navigator.userAgent.match(/(chrome)/g)

杀死那些 firefox 和 chrome 浏览器。

然后我意识到所有浏览器都与 iOS safari 共享相同的用户代理字符串。所以我想该方法应该运行一个只有Safari可以运行的javascript函数,然后确定浏览器是否是Safari。

最佳答案

因此,在选择在浏览器中工作时应使用哪种 native 功能时,有两种思想流派。一种思想流派是像您在这里所做的那样检查 userAgent 并使用/删除基于 userAgent 的功能。

检查userAgent的问题是它很快就会变得复杂。你已经遇到了一个有趣的问题,但是当你发现 ie8 没有你正在寻找的功能时会发生什么?

更好的解决方案可能是检查该功能是否存在于当前上下文中,而不必担心 userAgent。一个很好的例子是新的 HTML5 audio 元素。基于browser support ,我们可以看出它在 ie8 和 Safari < 4.0 中都不存在。您无需检查浏览器是否与此处提到的浏览器匹配,只需检查功能是否存在即可。我们知道 audio 元素是 Audio 类的实例。我们可以简单地检查:

if (window.Audio) {
//load and play the HTML5 audio element here
}

这比检查 userAgent 简单得多。

关于javascript - 有没有办法在过滤掉 iOS Chrome、Firefox 和其他浏览器的同时检测 iOS safari?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29242912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com