【发布时间】:2013-09-23 13:45:50
【问题描述】:
好的,这是我设法进入的边缘案例。我正在新的 Tizen OS 上测试我的应用程序。我的 JS 代码有数以千计的导航检查。比如:
navigator.userAgent.toLocaleLowerCase().indexOf("android") || navigator.userAgent.toLocaleLowerCase().indexOf("iPad")
现在我的测试设备上的 Tizen OS 的 userAgent 没有这些字符串。结果,我的很多 css 和 JS 都被破坏了。我现在处于 POC 模式,不想花时间为所有这些条件添加额外的检查。有没有办法以编程方式设置 userAgent ?大致如下:
navigator.userAgent += " Tizen" //does not work.
MDN 说它是一个读写属性。我无法修改它。帮我解决这个问题。欺骗 userAgent 的另一种聪明方法或设置它的正确方法。谢谢。
【问题讨论】:
-
这是一个非常糟糕的方法。甚至您引用的 MDN 文章也明确指出:“基于检测用户代理字符串的浏览器识别是不可靠的,不推荐使用 (...)”。特征检测更容易、更安全。另外,也许考虑使用Modernizr。
-
顺便说一句:
.toLocaleLowerCase().indexOf("iPad")肯定永远不会工作,是吗?iPad不是小写。 -
@Spudley:是的,这是我的错字。
-
我同意并理解这是不好的做法。请理解,我只是想在这里运行 POC。我的最终目标是测试 Tizen OS。
标签: javascript browser user-agent