15

checkboxChrome 拡張機能のポップアップの変更をキャプチャしようとしています。ドキュメンテーションは言う

インライン JavaScript は実行されません

同じページに提供されている例がありますが、それはbutton. チェックボックスの状態の変化をキャプチャするように変更する方法がわかりません。

document.addEventListener('DOMContentLoaded', function () {
      document.querySelector('button').addEventListener('click', clickHandler);
});

例

4

2 に答える 2

28

同じ問題がありましたが、Javascript でイベントをリストする非常に役立つサイトを参照してください。「check」というキーワードでクイック検索 (Ctrl+F) を行った後、「change」イベントがリストされていることがわかりました...ほとんどのブラウザーと互換性があると思われます。確かにそこにあったので、チェックボックスの「変更イベント」があるのではないかと思います。低くて、それをテストするだけで、うまくいくようです。これはあなたのコードを少し修正したもので、イベントのリンクです ( http://help.dottoro.com/larrqqck.php ):

popup.html の html の例

    <div class="menu" >
<input type="checkbox" id="showAlert" name="showAlert"/>
<label for="showAlert"><nobr>Show Alert</nobr></label></div>

popup.js のコード スニペットの例

document.addEventListener('DOMContentLoaded', function () {
      document.querySelector('#showAlert').addEventListener('change', changeHandler);
});

もちろん、これを次のような関数に渡す必要があります。

function changeHandler(){
   //Do Something...maybe another function showAlert(), for instance
   if(showAlert.checked){
      //do something
   }
   else{
      //do something else
   }
}

2018 年 1月 6 日 - 編集: この記事をちらっと見たところ、これは非推奨になる可能性が高いようです。したがって、MutationObserver ( https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver ) を使用することをお勧めします。

于 2012-09-01T15:49:22.500 に答える
-1

Try:

document.querySelector('checkbox').addEventListener('CheckboxStateChange', Handler);

Alternatively, you can listen to the 'onChange' or 'onClick' events, since every click will change the status of the checkbox.

于 2012-07-19T00:57:43.860 に答える