Google chrome extension Chrome扩展:修改用户代理字符串

Google chrome extension Chrome扩展:修改用户代理字符串,google-chrome-extension,user-agent,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.nsIHttpProtocolHandl

在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");
在用户代理字符串末尾添加“OurUAToken/1.0”


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

您可以使用WebRequest api:


不幸的是,它仍处于实验阶段。我认为Chrome 17版会稳定发布,不确定是否有人还在寻找解决方案,但之前建议的
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.webRequest.onBeforeSendHeaders.addListener(
功能(详情){
对于(变量i=0;i

有关更多信息,请访问博客:


Firefox也可以使用该扩展。有关详细信息,请访问。

另外,请看这篇文章:很好,但很遗憾,我无法在此项目中使用实验API。但您的答案仍然正确。谢谢