我正在为 google chrome 编写扩展程序。
我有一个包含以下内容的 options.html:
<html>
<head>
<title>Test Options Menu</title>
<script src="chromeoptions.js"></script>
</head>
<body>
<div id="options">
<div id="form">
<input type="checkbox" id="test">
<div id ="testEvents" style="display:'none'">
blabla
</div>
</div>
</div>
</body>
</html>
Chromeoptions.js 里面有这个:
function clicked(string) {
console.log('clicked');
if (document.getElementById(string).checked == true) {
document.getElementById(string + 'Events').style.display = '';
}
else document.getElementById(string + 'Events').style.display = 'none';
}
document.addEventListener('DOMContentLoaded', function() {
document.getElementById('test').addEventListener('click', clicked('test'));
});
发生的情况是:在第一次加载时,'click' 事件处理程序触发,导致 div 'testEvents' 消失。之后,当我切换复选框时没有任何反应。事件处理程序不会触发。我使用“click”还是“onchange”都没关系。
我还尝试将 scripttag 移动到 html 的底部并将“click”事件处理程序放在“DOMContentLoaded”事件处理程序之外,但这也没有改变任何东西。
那么当我切换复选框时如何让事件处理程序触发呢?