0

我想在浏览并在网站上显示更改时更改我的用户代理。我已经有了一个打印 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.

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

4

2 回答 2

1

这是设计使然。来自MDN

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

于 2013-05-16T09:04:35.040 回答
0

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

我改用PHP解决了它:

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

要不就

    <?php
        $header=getallheaders();
        $ua=$header["User-Agent"];
        echo "$ua<br/>";
    ?>
于 2013-05-21T21:50:24.263 回答