JavaScript をボタンにリンクすることができません

JavaScript をボタンにリンクすることができません

大量のデータ処理を伴う拡張機能を作成しようとしていますが、何らかの操作を行うための基本的なボタンをリンクできないようです。また、将来的に役立つリソースをご存知でしたら、ぜひ教えてください。

http://codepaste.net/vsimew

function helloworld() {
  alert("Hello World!");
}

このコマンドは popup.js からのものです。リスナー用の background.js もありますが、リスナーの使い方がわかりません。

よろしくお願いします

答え1

機能しない理由は、拡張ページではインライン Javascript が許可されていないためです。

インライン JavaScript は実行されません。この制限により、インライン<script>ブロックとインライン イベント ハンドラーの両方が禁止されます (例<button onclick="...">)。

最初の制限は、悪意のある第三者によって提供されたスクリプトを誤って実行できないようにすることで、クロスサイト スクリプティング攻撃の大規模なクラスを排除します。ただし、コンテンツと動作を明確に分離してコードを記述する必要があります (もちろん、いずれにしてもそうすべきですよね)。

関数を使用して onclick ハンドラーを追加できますaddEventListener。Chrome ドキュメントのこのセクションに、その方法の例が示されています。

https://developer.chrome.com/extensions/contentSecurityPolicy#JSExecution

関連情報