7

我正在尝试构建一个 chrome 扩展,它可以在启动浏览器时更改代理设置。我遵循了 chrome 扩展文档,但仍然没有成功。

清单.json

   {

      "manifest_version": 2,

      "name": "Proxy",
      "description": "Proxy on 127.0.0.1:8080",
      "version": "1.1",
      "background": {
      "scripts":["background.js"]
      },
      "browser_action": {
            "default_icon": "icon.png",
            "popup":"popup.html"
        },
    "permissions": [
        "tabs",
        "http://*/*",
        "https://*/*",
        "notifications",
        "contextMenus",
        "history",
        "background",
        "proxy"
    ],
    "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
    }

背景.js

chrome.windows.onCreated.addListener(function() {

var config = {
  mode: "fixed_servers",
  rules: {
    proxyForHttp: {
      scheme: "http",
      host: "127.0.0.1",
      port:"8080"
    },
    bypassList: ["foobar.com"]
  }
};
chrome.proxy.settings.set(
    {value: config, scope: 'regular'},
    function() {});

});

上面的代码不起作用...

4

6 回答 6

3

从昨天开始我一直在尝试一切,终于找到了我的问题;我不得不改变

proxyForHttp:-->singleProxy:

port:'8080'-->port: 8080

于 2017-12-15T23:16:07.727 回答
3

将线路更改port:"8080"port:8080,它会工作。


尼斯蒂

您可以在 chrome://net-internals/#proxy 查看有效设置。


尼斯蒂

如果通过 PAC 脚本,在脚本代码错误时,chrome.proxy.settings.set即使代理静默失败,处理程序仍会运行。这可以在 chrome://net-internals/#events 中检测到。


尼斯蒂

该页面声称可以在网络日志中找到 PAC 脚本中的 console.log 消息,但它似乎不起作用。

于 2017-08-07T23:41:52.243 回答
1

背景页面应该没有问题。您的代码位于窗口对象的 onCreated 事件中。您不能保证在创建第一个窗口时加载扩展。

只需删除事件并运行代码,然后在初始化扩展时就应该让它运行一次。

于 2013-03-03T19:14:53.817 回答
0

我认为您不能使用 Background.js 中的 chrome.proxy API。我对弹出扩展做了同样的事情(使用了文档中的代码示例),它工作得很好......

于 2013-03-03T18:58:53.427 回答
0

我试过你的代码,chrome给我提示端口号是整数,而不是字符串并将这个端口:“8080”更改为端口:8080,它工作但我没有遵循你的所有代码,并删除这个chrome .windows.onCreated.addListener(function() { ,只留下这个函数中的内容 3ks 你的问题!

于 2015-12-28T00:28:36.863 回答
0

“当浏览器启动时”

您应该使用Chrome.Runtime而不是 chrome.windows.onCreated。使用 chrome.runtime.onStartup,所以当浏览器从无到有打开时 hrome.runtime.onStartup 将被触发。

onStartup 当安装了此扩展的配置文件首次启动时触发。启动隐身配置文件时不会触发此事件,即使此扩展程序在“拆分”隐身模式下运行也是如此。

会是这样

chrome.runtime.onStartup.addListener(function() {
var config = {
  mode: "fixed_servers",
  rules: {
    proxyForHttp: {
      scheme: "http",
      host: "127.0.0.1",
      port:"8080"
    },
    bypassList: ["foobar.com"]
  }
};
chrome.proxy.settings.set(
    {value: config, scope: 'regular'},
    function() {});

});

您也可以在安装/更新扩展程序时使用 onInstalled ...

于 2018-12-07T01:32:13.663 回答