1

初めての chrome 拡張機能を作成していますが、非常に基本的な問題に直面しています。

私の拡張機能には、特定の条件が満たされた場合に Web ページの URL をローカル Web ページにリダイレクトするバックグラウンド スクリプトが常に実行されています。

chrome.tabs.update(e.tabId, 
                  {url: "popup.html"});

Popup.html がタブに読み込まれます。これは問題なく動作しますが、popup.html に JavaScript を含めたいと考えています。

popup.js ファイルを含めることはできますが、ドキュメントが null であるため、document.addEventListener を試しても機能しません。

また、jquery.js をインクルードしようとすると、

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

マニフェスト ファイルのプロパティをこれに更新しようとしましたが、役に立たなかったようです。

"content_scripts": [
  {
    "matches": ["http://*/*", "https://*/*"],
    "js": ["background.js", "jquery.min.js", "popup.js"]
  }
],

"permissions": [
    "tabs", "http://*/*", "https://*/*",
  "webNavigation"
],


"background": {
"scripts": ["background.js", "popup.js", "jquery.min.js"]
}

このドキュメントhttp://developer.chrome.com/stable/extensions/contentSecurityPolicy.htmlを調べましたが、解決策はありませんでした。何か案は?

4

1 に答える 1

0

私、このエラーは、インライン スクリプトを HTML ドキュメントの タグ内で直接実行していること、または のようなイベント ハンドラで実行していることを示していますonclick="myCode();"。コンテンツ セキュリティ ポリシーにより、そうすることができなくなります。

そのスクリプトを書いたのがあなたなのか、それとも外部フレームワークなのかはわかりません。それでも、popup.html にインライン コードが含まれていないことを確認するか、コンテンツ セキュリティ ポリシーを緩和して、インライン スクリプトを許可する必要があります'unsafe-inline'

セキュリティ ポリシーを緩和すると、SECURITY が緩和され、コードが攻撃に対してより脆弱になることに注意してください。デバッグ目的で行いますが、リリース バージョンから削除してみてください。

于 2013-01-29T12:27:56.213 に答える