来自外部文件的chrome.tabs.executeScript?我需要在manifest.json中更改哪些权限?

时间:2013-10-07 00:53:35

标签: google-chrome-extension

我想运行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文件作为内容脚本注入?

1 个答案:

答案 0 :(得分:0)

您需要“标签”权限才能将脚本注入页面。请注意,您可以为脚本注入代码或链接。注入远程脚本可能存在问题,但您可以下拉JS并将其直接注入页面。

要将远程脚本包含在后台页面中,您需要在content_security_policy中列出域,除非它位于localhost上,否则必须为https。