我的扩展需要动态加载代码。我写这个来加载它 -
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/