「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > コンテンツ セキュリティ ポリシー違反により、Chrome 拡張機能のポップアップ クリック イベントが失敗するのはなぜですか?

コンテンツ セキュリティ ポリシー違反により、Chrome 拡張機能のポップアップ クリック イベントが失敗するのはなぜですか?

2024 年 11 月 24 日に公開
ブラウズ:108

Why Are My Chrome Extension Popup Click Events Failing Due to a Content Security Policy Violation?

拡張機能のポップアップ クリック イベントの失敗: コンテンツ セキュリティ ポリシー違反の解決

エラーの説明

Chrome 拡張機能で、拡張機能アイコンと拡張機能の両方のクリック イベントポップアップ ページ内のボタンは、JavaScript 変数をインクリメントするという予期された応答を生成しません。

ルートの検査原因

問題をデバッグするには、ポップアップ ページを調べ、コンソール ログを調べます。このエラー メッセージは、コンテンツ セキュリティ ポリシー (CSP) 違反を示している可能性があります:

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

CSP への準拠

HTML ページ内のインライン スクリプトはデフォルトの CSP に違反しています。このポリシーでは、インライン JavaScript は許可されません。

解決策: JavaScript の分離

この問題を解決するには、HTML ファイルからすべてのインライン JavaScript を削除し、別の JavaScript ファイルに配置します。

改訂されたコード構造

hello.html (ポップアップ)ページ)





popup.js

var a = 0;
function count() {
  a  ;
  document.getElementById('demo').textContent = a;
}
document.getElementById('do-count').onclick = count;

Notes

  • 潜在的な XSS 脆弱性を軽減するためにテキストを変更する場合は、innerHTML を textContent に置き換えます。
  • このソリューションは CSP への準拠を保証し、適切なスクリプトの実行とクリック イベントの処理を可能にします。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3