Chrome扩展程序:修改用户代理字符串

时间:2011-11-02 09:39:15

标签: google-chrome-extension user-agent

在Firefox扩展程序中,我们可以:

var _prefService =  Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
var httpHandler = Cc["@mozilla.org/network/protocol;1?name=http"].getService(Ci.nsIHttpProtocolHandler);
setCharPref("general.useragent.override",httpHandler.userAgent + " OurUAToken/1.0");

在User-Agent字符串末尾添加“OurUAToken / 1.0”。

我们如何在Google Chrome中复制此行为?

2 个答案:

答案 0 :(得分:3)

不确定某人是否仍在寻找解决方案,但之前建议的chrome.webRequest API现在非常稳定。

chrome.webRequest.onBeforeSendHeaders.addListener(
  function(details) {
    for (var i = 0; i < details.requestHeaders.length; ++i) {
      if (details.requestHeaders[i].name === 'User-Agent') {
        details.requestHeaders[i].value = details.requestHeaders[i].value + ' OurUAToken/1.0';
      }
      break;
    }
    return { requestHeaders: details.requestHeaders };
  },
  {urls: ['<all_urls>']},
  ['blocking', 'requestHeaders']
);

其中一个Chrome扩展程序Requestly已经有类似的实现,允许覆盖浏览器中打开的任何网站的用户代理字符串。

有关详细信息,请访问博客:https://medium.com/@requestly_ext/switching-user-agent-in-browser-f57fcf42a4b5

此扩展程序也适用于Firefox。有关详细信息,请访问http://www.requestly.in

答案 1 :(得分:1)

您可以使用WebRequest api:http://code.google.com/chrome/extensions/trunk/experimental.webRequest.html

不幸的是,它还处于实验阶段。我认为它将在Chrome 17版本中稳定发布