J'essaie de capturer les modifications de la checkbox
à checkbox
dans la fenêtre contextuelle de mon extension Chrome. La documentation dit :
Le JavaScript en ligne ne sera pas exécuté
Il existe un exemple sur la même page, mais pour le button
. Je ne sais pas comment le modifier afin de capturer les changements d'état de Chekbox.
document.addEventListener('DOMContentLoaded', function () { document.querySelector('button').addEventListener('click', clickHandler); });
A eu le même problème mais fait référence à un site très utile qui répertorie les événements en version Javascript. Après avoir effectué une recherche rapide (Ctrl + F) pour le mot-clé "vérifier", j'ai trouvé l'événement "changement" répertorié … supposé compatible avec la plupart des navigateurs. Bien sûr, il était là, alors je suppose que, peut-être, il existe un «événement de changement» pour les cases à cocher. Faible, voici juste le tester et ça semble fonctionner. Voici votre code révisé un peu et le lien des événements ( http://help.dottoro.com/larrqqck.php ):
Exemple de html à partir de popup.html
<div class="menu" > <input type="checkbox" id="showAlert" name="showAlert"/> <label for="showAlert"><nobr>Show Alert</nobr></label></div>
Exemple d'extrait de code de popup.js
document.addEventListener('DOMContentLoaded', function () { document.querySelector('#showAlert').addEventListener('change', changeHandler); });
Bien sûr, vous devrez passer cela dans une fonction comme:
function changeHandler(){ //Do Something...maybe another function showAlert(), for instance if(showAlert.checked){ //do something } else{ //do something else } }
Essayer:
document.querySelector('checkbox').addEventListener('CheckboxStateChange', Handler);
Alternativement, vous pouvez écouter les événements 'onChange' ou 'onClick', car chaque clic changera l'état de la case à cocher.