27

基本的に要素ハイライターのクロム拡張を作成しようとしています。ワークフロー: - ブラウザ アイコンをクリック - ページをクリック - クリックした要素を強調表示

manifest_version:2 を使用してブラウザー アクションでコンテンツ スクリプトを実行する際に問題があります。表示されるポップアップを調べると、次のように表示されます。

次のコンテンツ セキュリティ ポリシー ディレクティブに違反しているため、インライン スクリプトの実行を拒否しました: "script-src 'self' chrome-extension-resource:" (popup.html:5)。

popup.html のインライン スクリプトがあり、スクリプトが機能しない場所

私は持っている:

マニフェスト.json:

{
   "browser_action": {
      "default_icon": "images/icon.gif",
      "default_popup": "popup.html"
   },
   "manifest_version": 2,
   "description": "MEH!",
   "name": "My First Extension",
   "permissions": [
      "tabs", "http://*/*", "https://*/*"
   ],
   "version": "0.1"
}

popup.html:

<html>
  <head>
  </head>
  <body>
    <script>
      chrome.tabs.executeScript(null,{
        code:"document.body.style.backgroundColor='red'"
      });
    </script>
    <div id='msg' style="width:300px">...</div>
  </body>
</html>

どんな助けでも大歓迎です

4

2 に答える 2

45

ここに表示されるまで、エラーを正しく読み取ることができなかったことがわかりました

どうやらマニフェストv2ではインラインスクリプトを使用できないため、必要なのは

src="path_to_the_file.js"
于 2012-07-18T16:17:16.453 に答える
1

@ tak3rの回答と@ Dougのコメントの延長で:

インライン スクリプトを外部スクリプトに変更する必要があります。

動く:

<script>
  chrome.tabs.executeScript(null,{
    code:"document.body.style.backgroundColor='red'"
  });
</script>

という新しいファイルに移動し、タグmain.jsを削除します<script></script>

<head></head>HTMLの に以下を含めます

<script type="text/javascript" src="main.js"></script>
于 2014-08-28T10:22:59.677 に答える