Google chrome extension Chrome扩展:在扩展中管理多个html页面

Google chrome extension Chrome扩展:在扩展中管理多个html页面,google-chrome-extension,Google Chrome Extension,我想在我的扩展名中有几个html文件,这样我就可以根据某些条件或事件打开它们中的每一个。假设我希望在用户选择上下文菜单上的选项时打开a.html 我尝试了以下方法: manifest.json: { "name": "My extension", "version": "1.1", "background": { "page": ["background.html"] }, "incognito": "split", "permissions": ["tabs", "<all_urls&

我想在我的扩展名中有几个html文件,这样我就可以根据某些条件或事件打开它们中的每一个。假设我希望在用户选择上下文菜单上的选项时打开a.html

我尝试了以下方法:

manifest.json:

{
"name":  "My extension",
"version": "1.1",
"background": { "page": ["background.html"] },
"incognito": "split",
"permissions": ["tabs", "<all_urls>", "contextMenus"],
"icons": { "16": "images/16.png" },
"manifest_version": 2
}
someWindow.js:

function hide_win()
{
    chrome.extension.sendMessage({close_win: close}, function(response) {});
}
a、 html:

<!DOCTYPE html>
<html>
<head>

<script src='someWindow.js'></script>

head     //with tags, can't show it here
body
<input type='button' value=' Cancel ' onclick="hide_win()"></input>

</body>
</html>

头//带有标记,无法在此处显示
身体
单击上下文菜单时窗口打开,但单击取消时窗口未关闭。console.log说:
拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:“script src'self'chrome extension resource:”。
我猜原因是a.html不是扩展的一部分,即使触发sendMessage的someWindow.js是扩展的一部分

通过清单在扩展中包含.html不是一个选项,因为只能包含一个背景html页面

当然,我在放入
chrome.windows.remove(winID,function(){})时也会得到同样的结果hide_win()
中编码>而不使用sendMessage


你知道如何完成这项工作吗?

正如错误所说,在扩展html页面中使用任何内联代码都是不利于v2的。只需将该处理程序移动到您的
js
文件中,它就可以正常工作。

问题在于您的内联
onclick
,尝试摆脱它。哦,我没有注意到这一点。我会试着给你回电话,就这样!我对你感激不尽。如果你愿意,你可以把它作为一个答案。
function hide_win()
{
    chrome.extension.sendMessage({close_win: close}, function(response) {});
}
<!DOCTYPE html>
<html>
<head>

<script src='someWindow.js'></script>

head     //with tags, can't show it here
body
<input type='button' value=' Cancel ' onclick="hide_win()"></input>

</body>
</html>