7

ブラウザの起動時にプロキシ設定を変更できるクロム拡張機能を構築しようとしています。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'"
    }

backround.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

1

背景ページの問題ではありません。あなたのコードは、window オブジェクトの onCreated イベントにあります。最初のウィンドウが作成されるまでに拡張機能がロードされているとは限りません。

イベントを削除してコードを実行するだけで、拡張機能の初期化時に一度実行する必要があります。

于 2013-03-03T19:14:53.817 に答える
0

私はあなたのコードを試してみました.chromeはポート番号が整数であるが文字列ではなく、このポートを変更するというヒントを与えてくれます:「8080」をポート:8080に変更しました. .windows.onCreated.addListener(function() { 、この関数の内容のみを残して、質問のために 3ks を残してください!

于 2015-12-28T00:28:36.863 に答える
0

Background.js から chrome.proxy API を使用できるとは思いません。私はポップアップ拡張機能で同じことをしました(ドキュメントのコードサンプルを使用しました)、それは完全に機能します...

于 2013-03-03T18:58:53.427 に答える