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

问题描述 投票:0回答:2

在 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 中复制此行为?

google-chrome-extension user-agent
2个回答
9
投票

之前建议的

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 了解详情。


2
投票

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

不幸的是,它仍处于实验阶段。我认为它将与 Chrome 版本 17 一起稳定发布

© www.soinside.com 2019 - 2024. All rights reserved.