我的chrome扩展内容脚本中有以下代码:
window.open(chrome.extension.getURL("options.html"),'_blank');
但是每当我尝试这个时,我只会得到一个新的标签:空白,而不是我的选项页面。
当我在选项页面上运行相同的代码(通过开发人员工具控制台)时,它可以正常工作。如果我发布包含文字chrome.extension.getURL("options.html")
的提醒,则会按预期运行。
This chrome documentation page表明我正在做的事情应该正常运作。那么,我该如何解决这个问题?
编辑:
我认为这与内容安全政策有关。
所以我想我的新(更一般)问题是,如何从内容脚本启动我的选项页面?
答案 0 :(得分:3)
为了能够在扩展程序的上下文之外使用您的HTML文件(或任何其他资源)(例如在网页中),您需要在 {中添加目标HTML文件您的清单中的{3}} 部分。 E.g:
扩展文件结构:
root-dir/
|_____manifest.json
|_____content.js
|_____options.html
<强> content.js:强>
/* Append a link to the web-page's body */
var a = document.createElement("a");
a.href = chrome.extension.getURL("options.html");
a.target = "_blank";
a.textContent = "My HTML file";
document.body.appendChild(a);
<强>的manifest.json:强>
{
"manifest_version": 2,
"name": "Test Extension",
"version": "0.0",
"offline_enabled": true,
"content_scripts": [{
"matches": ["*://*/*"],
"js": ["content.js"],
"run_at": "document_end",
"all_frames": false
}],
"web_accessible_resources": ["options.html"]
}