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

时间:2018-07-26 12:02:48

标签: javascript html google-chrome-extension

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

当我没有在manifest.jsonpage.html中添加任何其他内容时,会出现此错误:

  

拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“ script-src'self'blob:文件系统:chrome-extension-resource:”。要启用内联执行,要么使用'unsafe-inline'关键字,要么使用哈希('sha256-t + n / + H6ALc8VWtFbu1Zd7 / MPwtSjSk8PIrfccO7FJrg ='),或者使用随机数(nonce)('nonce -...')。 >

如果我添加

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

到我的manifest.json,我得到

  

拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“ script-src'self'chrome-extension:// capfbnhhhkfclmggnafjgkolommmmoch”。要启用内联执行,要么使用关键字(“ unsafe-inline”),要么使用哈希(“ sha256-t + n / + H6ALc8VWtFbu1Zd7 / MPwtSjSk8PIrfccO7FJrg =”),或者使用随机数(“ nonce -...”)。

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

我的问题是:我该如何解决?因为我认为"script-src 'self' blob: filesystem: chrome-extension-resource:"是某种模板,所以此后我必须添加一些数据: ...但是我真的不知道是哪个。我看到了here的一些内容,但是我不知道该怎么办或应该在哪里写。所以请帮助我,如果我修复了该错误,我将非常高兴。

打开窗口的代码:

$.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>

1 个答案:

答案 0 :(得分:0)

这不起作用,因为Chrome浏览器forbids any kind of inline code在扩展中通过内容安全策略。

您可以做的是:

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