1

在 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'"

有什么想法为什么会抛出这个错误?

4

1 回答 1

0

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

它正在以下状态下工作:

清单.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);

如果这没有帮助,您可以分享相关代码吗?

于 2013-02-21T10:10:06.240 回答