Javascript 在Firefox中更新用户代理

Javascript 在Firefox中更新用户代理,javascript,firefox,http-headers,user-agent,Javascript,Firefox,Http Headers,User Agent,我想在浏览和在网站上显示更改时更改我的用户代理。 我已经有了一个打印UserAgent的网站,只需使用JSdocument.writeln(navigator.UserAgent) 当我用Chrome加载这个页面时,它会显示我的默认UA(比如说abc)。当我将其更改为xyz并刷新(Ctrl+F5)时,它将显示新的UAxyz。 太好了,这正是我想要的 现在,如果我对Firefox做同样的事情,显示的UA将不会更新。 因此,我将abc作为我的UA加载页面,将其更改为xyz,刷新站点(再次不带缓存),

我想在浏览和在网站上显示更改时更改我的用户代理。 我已经有了一个打印UserAgent的网站,只需使用JS
document.writeln(navigator.UserAgent)

当我用Chrome加载这个页面时,它会显示我的默认UA(比如说
abc
)。当我将其更改为
xyz
并刷新(Ctrl+F5)时,它将显示新的UA
xyz
。 太好了,这正是我想要的

现在,如果我对Firefox做同样的事情,显示的UA将不会更新。 因此,我将
abc
作为我的UA加载页面,将其更改为
xyz
,刷新站点(再次不带缓存),但它仍然显示
abc

Apache日志和Wireshark都显示HTTP头中传输的UA实际上是新的
xyz

你们有谁知道这里发生了什么吗?

这是有意为之。发件人:

在Firefox中,您可以在about:config中更改首选项general.useragent.override。一些Firefox扩展就是这样做的;但是,这只会更改发送的HTTP头,不会影响JavaScript代码执行的浏览器检测


正如你们中的一些人建议的那样,我已经阅读了navigator对象,而不是实际的HTTP头,谢谢

我用PHP解决了这个问题:

    <?php
        $header=getallheaders();
        foreach ($header as $name => $value) 
        {
            echo "$name: $value<br/>";
        }
    ?>

或者只是

    <?php
        $header=getallheaders();
        $ua=$header["User-Agent"];
        echo "$ua<br/>";
    ?>


我很想理解你为什么要这么做,因为虽然这是一个有趣的问题,但我无法想象有什么好的理由希望在网页中以编程方式这样做。你很可能在修改Firefox发送的请求头,而你的JS读取
navigator
对象。没有什么特别的原因(有用的)原因!我是一个关于互联网技术的MOOC的助教,我正在准备一个关于HTTP头的任务。学生们应该摆弄它们以获得更实际的理解。谢谢Barmar,听起来很合理。那么有没有办法阅读网站HTTP头中发送的实际UA?