我需要在我的扩展中动态加载代码。我写这个是为了加载它-
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'"我的问题是--为什么它不轻松?我特别在清单中添加了这一行,以允许不安全的事件。
发布于 2013-02-17 05:16:39
我不认为是你使用了eval导致了这个错误。您将<script>块注入到文档的head中,似乎违反了禁止执行内联JavaScript的策略。
根据Content Security Policy上的文档
将不会执行
内联JavaScript。此限制同时禁止内联块和内联事件处理程序(例如< button onclick='...'>)。
另请注意:
内联脚本
没有任何机制可以放松对执行内联JavaScript的限制。特别是,设置包含“unsafe-inline”的脚本策略将不起作用。
您必须想出一种利用外部js文件来完成您要做的事情的方法,而不是将代码放在内联中。
发布于 2015-03-05 07:22:23
只需将此添加到您的manifest.json,对我很有效。
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"https://stackoverflow.com/questions/14914550
复制相似问题