Chrome扩展程序动态添加脚本

时间:2013-02-20 19:41:08

标签: javascript html5 google-chrome google-chrome-extension content-security-policy

在Chrome扩展程序中使用以下代码

**background.js**
var elt = document.createElement("script");
elt.type="text/javascript";
elt.innerHTML = "alert('hello world');";
document.getElementsByTagName("head")[0].appendChild(elt);

引发此错误

Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval'".

尽管我在manifest.js

中有这一行
 "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"

为什么会抛出这个错误?

1 个答案:

答案 0 :(得分:0)

没有放松对执行内联JavaScript的限制的机制。特别是,设置包含 unsafe-inline 的脚本政策将不起作用。

正在使用以下状态:

的manifest.json

{
    "name": "Page Action Demo",
    "description": "This demonstrates Page Action",
    "manifest_version": 2,
    "version": "1",
    "content_scripts": [
        {
            "matches": [
                "https://www.google.co.in/*"
            ],
            "js": [
                "myscript.js"
            ]
        }
    ],
    "permissions": [
        "https://www.google.co.in/*"
    ]
}

myscript.js

var elt = document.createElement("script");
elt.type="text/javascript";
elt.innerHTML = "alert('hello world');";
document.getElementsByTagName("head")[0].appendChild(elt);

如果这不起作用,您可以分享相关代码吗?