Chrome扩展:内容安全策略错误



我正在开发Chrome扩展,它打开了一个新窗口。该窗口包含我的page.html,其中有一些脚本,这就是问题所在,因为在控制台中我可以看到错误。。。现在。

当我没有向我的manifest.jsonpage.html添加任何额外的东西时,我会收到以下错误:

拒绝执行内联脚本,因为它违反了以下内容安全策略指令:"script src'self'blob:file系统:chrome扩展资源:"。需要"unsafe inline"关键字、哈希('sa256-t+n/+H6ALc8VWtBu1Zd7/MPwtSjSk8IrfccO7FJrg='(或nonce('none-…'(来启用内联执行。',

如果我添加

"content_security_policy": "script-src 'self' chrome-extension://capfbnhhhkfclmggnafjgkolommmmoch; object-src 'self';"

到我的manifest.json,我得到

拒绝执行内联脚本,因为它违反了以下内容安全策略指令:"script src'self'chrome-extension://capfbnhhhkfclmggnafjgkolommmmoch".启用内联执行需要'unsafe-inline'关键字、哈希('sa256-t+n/+H6ALc8VWtBu1Zd7/MPwtSjSk8IrfccO7FJrg='(或nonce('once-…'(

当我在page.html中添加一些meta标记时,出现了相同或类似的错误。

我的问题是:我该如何修复它?因为我认为"script-src 'self' blob: filesystem: chrome-extension-resource:"是某种模板,所以我必须在:之后添加一些数据……但我真的不知道是哪个。我在这里看到了一些关于它的东西,但我不知道该怎么办,也不知道该在哪里写。所以请帮帮我,如果我纠正了这个错误,我会很高兴的。

打开窗口的代码:

$.get(chrome.extension.getURL('/page.html'), function(data) {
var myWindow;
myWindow = window.open("", "TopSerialy.sk Vyhľadávač","width=386,height=290");
myWindow.moveTo((screen.width/2)-(386/2), ((screen.height-93)/2)-(290/2));
myWindow.document.write(data);
});

page.html只包含按下按钮时关闭窗口的简单脚本,由HTML中的<script>functions, etc...</script>标记声明,而不是<script scr="some_url/script.js"></script>

这不起作用,因为Chrome通过内容安全策略禁止在扩展中使用任何类型的内联代码。

你能做的是:

  1. 将所有内联代码放入某个文件(popup.js)
  2. 添加到您的代码<script src="popup.js"></script>

最新更新