15

我正在尝试捕获checkbox我的 Chrome 扩展程序弹出窗口中的更改。文档

内联 JavaScript 不会被执行

同一页面上提供了一个示例,但它用于button. 我不知道如何修改它,所以它会捕获 chekbox 的状态变化。

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

尝试:

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

或者,您可以收听“onChange”或“onClick”事件,因为每次单击都会更改复选框的状态。

于 2012-07-19T00:57:43.860 回答