有没有一种方法可以在过滤掉iOS Chrome、Firefox和其他浏览器的同时检测iOS safari
Is there a way to detect iOS safari while filtering out iOS Chrome, Firefox and other browsers?
因此,对于那些在iOS网络应用程序上工作的人来说,可能知道由于苹果的政策,Chrome和iOS上的其他移动浏览器使用了一个非常古老的javascript引擎。这就是为什么我们需要禁用Chrome和其他iOS非safari浏览器的一些渲染。
我一直在读这个问题,没有任何有用的答案。以下是我的一些方法(失败):
使用is_iOS = navigator.userAgent.match(/(iPad|iPhone|iPod)/g)
检测浏览器是否在iOS上。然后使用:
CCD_ 2和CCD_ 3
杀死那些firefox和chrome浏览器。
然后我意识到所有浏览器都与iOS safari共享相同的用户代理字符串。因此,我认为该方法应该运行一个只有Safari才能运行的javascript函数,然后确定浏览器是否为Safari。
因此,在选择在浏览器中使用的本机功能时,有两种思想流派。一种思想流派是像您在这里所做的那样检查userAgent
,并使用/删除基于userAgent
的功能。
检查userAgent
的问题是它变得非常复杂。你已经遇到了一个有趣的问题,但当你发现ie8没有你想要的功能时,会发生什么?
一个更好的解决方案可能是检查该功能在其当前上下文中是否存在,而不必担心userAgent
。一个很好的例子是新的HTML5audio
元素。基于浏览器支持,我们可以看出它不存在于ie8或Safari<4.0.您可以检查功能是否存在,而不是检查浏览器是否与此处提到的浏览器匹配。正如我们所知,audio
元素是Audio
类的一个实例。我们可以简单地检查:
if (window.Audio) {
//load and play the HTML5 audio element here
}
这比检查userAgent
要简单得多。
- 为什么这在IE中的工作方式与在Firefox中不同
- 如何确定javascript已经完成了某些操作.ios上的
- JS可以在Chrome中工作,但不能在Firefox中工作
- 压缩phonegap中ios的图像插件
- createElement("a") - FireFox JavaScript
- 为什么javascript:void(0)在Firefox中不起作用
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- 如何在iOS应用程序中从Firebase中删除超过6小时的数据
- Facebook登录按钮没有'不能在Firefox上工作
- jpm的默认Firefox路径没有'不起作用
- 是否可以使用iframe API在iOS浏览器上播放youtube视频
- 重载JS'firefox中的对象原型
- Ajax调用在Firefox中不会自动响应
- JS在firefox中无法正常工作
- firefox插件和dev/panel之间的通信
- iOS 中的按钮触摸状态
- 有没有一种方法可以在过滤掉iOS Chrome、Firefox和其他浏览器的同时检测iOS safari
- JavaScript detect iOS Firefox
- iOS Firefox XMLHttpRequest 错误响应
- Bootstrap Javascript不适用于Firefox和Safari IOS