我的扩展需要动态加载代码。我写这个来加载它 -

    var se = document.createElement('script');
se.setAttribute('type', 'text/javascript');
se.appendChild(document.createTextNode(code));
document.getElementsByTagName('head').item(0).appendChild(se);

这是我在 manifest.js 中的安全策略 -
 "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"

这会引发一个 javascript 错误 -
 "Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe eval'"

我的问题是 - 为什么不放松?我特别在 manifest 中添加了一行以允许不安全的 evals 。

最佳答案

我不认为是您对 eval 的使用导致了错误。通过将 <script> 块注入(inject)文档的 head ,您似乎违反了禁止执行内联 JavaScript 的政策。

根据 Content Security Policy 上的文档:



另请注意:



您必须想出一种利用外部 js 文件来完成您想要做的任何事情的方法,而不是将代码内联。

关于javascript - Chrome 扩展内容安全策略,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14914550/

10-12 12:24
查看更多