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 に答える