我想运行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文件作为内容脚本注入?
答案 0 :(得分:0)
您需要“标签”权限才能将脚本注入页面。请注意,您可以为脚本注入代码或链接。注入远程脚本可能存在问题,但您可以下拉JS并将其直接注入页面。
要将远程脚本包含在后台页面中,您需要在content_security_policy中列出域,除非它位于localhost上,否则必须为https。