我正在尝试在Chrome扩展程序的弹出窗口中捕获checkbox
的更改。文档says:
不会执行内联JavaScript
在同一页面上提供了一个示例,但它适用于button
。我不知道如何修改它以便捕获chekbox的状态变化。
document.addEventListener('DOMContentLoaded', function () {
document.querySelector('button').addEventListener('click', clickHandler);
});
答案 0 :(得分:26)
有同样的问题,但引用了一个非常有用的网站,列出了Javascript中的事件。在对关键字“check”进行快速搜索(Ctrl + F)后,我发现列出的“更改”事件...据称与大多数浏览器兼容。当然,它确实存在,所以我的假设是,复选框可能存在“更改事件”。低,看看它只是测试它似乎工作。以下是您修改的代码以及事件的链接(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
}
}
01/06/2018 - 编辑: 我只是回头看看这篇文章,看来这可能会被弃用。因此,您可能希望使用MutationObserver(https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver)。
答案 1 :(得分:-1)
尝试:
document.querySelector('checkbox').addEventListener('CheckboxStateChange', Handler);
或者,您可以收听'onChange'或'onClick'事件,因为每次点击都会更改复选框的状态。