2

我想运行 chrome.tabs.executeScript 来运行存储在远程服务器上的文件(出于测试目的,该服务器是 localhost)。这是我到目前为止的代码:

chrome.tabs.executeScript(tabId, {file: 'http://localhost/js/myTestFile.js'}, function() {
    //Do some stuff on completion
});

我知道默认情况下,以编程方式注入的内容脚本不能来自远程位置,但您可以将清单中的某些来源“列入白名单”来改变它。这是我目前的清单:

  //Extensions Permissions
  "permissions": [
    "activeTab",
    "notifications",
  ],

  //External access permissions
  "externally_connectable": {
    "matches": [
      "http://localhost/*",
    ]
  }

  //Directories available to the extension
  "web_accessible_resources": [
    "js/*",
    "html/*",
    "img/*"
  ],

  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["js/lib/require-2.1.8.min.js", "js/extension/contentManager.js"],
      "all_frames": true
    }
  ],

我可以通过什么方式修改清单以允许将远程 JS 文件作为内容脚本注入?

4

1 回答 1

0

您需要请求“选项卡”权限才能将脚本注入页面。请注意,您可以注入代码或脚本链接。注入远程脚本可能会出现问题,但您可以拉下 JS 并将其直接注入页面。

要将远程脚本包含到后台页面中,您需要在 content_security_policy 中列出域,并且它必须是 https,除非它在 ​​localhost 上。

于 2014-01-28T01:19:30.343 回答