Javascript navigator.userAgent在Firefox中始终显示相同的代理

Javascript navigator.userAgent在Firefox中始终显示相同的代理,javascript,firefox,user-agent,Javascript,Firefox,User Agent,我正在使用for Firefox来更改用户代理。 我之所以需要这样做(为了测试),是为了根据是iOS还是Android手机加载不同的css 运行此脚本 <script type="text/javascript"> var agent = navigator.userAgent.toLowerCase(); alert(agent); </script> var agent=navigator.userAgent.toLowerCase();

我正在使用for Firefox来更改用户代理。 我之所以需要这样做(为了测试),是为了根据是iOS还是Android手机加载不同的css

运行此脚本

  <script type="text/javascript">
    var agent = navigator.userAgent.toLowerCase();
    alert(agent);
  </script>

var agent=navigator.userAgent.toLowerCase();
警报(代理);
我总是得到这样的输出:

mozilla/5.0(windows nt 6.1;wow64;rv:26.0)gecko/20100101 firefox/26.0

尽管我可以在《雷鸟》中看到以下内容:

用户代理:Mozilla/5.0(iPad;类似Mac OS X的CPU OS 5_1) AppleWebKit/534.46(KHTML,类似Gecko)Version/5.1 Mobile/9B176 Safari/7534.48.3


这是Firefox特有的问题吗?

通过标题修改用户代理确实会更改服务器看到的UA字符串

但是,这并不意味着您实际上正在更改浏览器知道的用户代理字符串

您正在通过javascript查询UA字符串;这将在浏览器中获取实际的UA字符串;与已发送到服务器的标头无关


如果您想正确覆盖UA字符串,有以下几种方法。我建议您使用其中一个,而不是通用的头覆盖扩展。

我不明白。您会问,您的firefox插件似乎无法工作是否是firefox特有的问题?是-或者是错误地使用
navigator.userAgent
来检测设备。@Steven-一般来说,使用用户代理字符串进行设备/浏览器检测被认为是错误的做法。代码的编写应适应其运行的浏览器的功能,而不必使用用户代理字符串,即使用功能检测而不是浏览器检测。像Modernizer这样的工具可以帮助实现这一点。(有些情况下可能仍然需要进行浏览器检测,但这种情况很少见,而且主要局限于旧IE版本)@Spudley感谢Sprudley。问题是,当我们使用HTML5开发模板时,我的客户有一个第三方在开发iOS和Adroid应用程序。该应用程序将使用WebView显示HTML5页面。客户希望它看起来像一个应用程序,因此我们需要iOS和Android的不同风格。我以前没有使用过特征检测。虽然我找不到任何好的例子,但我发现这篇文章: