Javascript 添加事件侦听器时出错
首先,我知道这类问题已经被问了上千次了,但为什么这不管用呢? 我有一个chrome扩展,带有options.html和一个保存按钮,用于将内容保存到本地存储:Javascript 添加事件侦听器时出错,javascript,html,google-chrome-extension,Javascript,Html,Google Chrome Extension,首先,我知道这类问题已经被问了上千次了,但为什么这不管用呢? 我有一个chrome扩展,带有options.html和一个保存按钮,用于将内容保存到本地存储: <div> <button type="button" name="save" class="btn btn-primary btn-md active" id="save">SAVE</button> </div> 但是,它在chrom
<div>
<button type="button" name="save" class="btn btn-primary btn-md active" id="save">SAVE</button>
</div>
但是,它在chrome控制台中给了我这个错误:
Uncaught TypeError: Cannot read property 'addEventListener' of null
我忽略了什么?您试图将事件侦听器添加到尚未创建的元素中。 将事件istener添加到DOMContentLoaded,以便在生成DOM后执行您的侦听器
document.addEventListener("DOMContentLoaded", function() {
document.getElementById('save').addEventListener('click',
save_options);
});
这应该可以解决问题。您之所以会出现此错误,是因为您试图将事件侦听器添加到尚未创建的元素,将js脚本放在正文的末尾,或者使用DOMContentLoaded事件,什么是第一个-脚本或按钮?您在哪里/如何包含js?谢谢大家,StasiekK的答案有效。问题存在于JavaScript/HTML中您没有显示的部分。请提供一份完整的表格。所有答案都只是猜测问题是一个非常常见的问题,即在元素存在之前尝试访问它。这个问题是关于JavaScript/HTML/CSS的,它不是Chrome扩展环境所独有的。你应该考虑使用A。
document.addEventListener("DOMContentLoaded", function() {
document.getElementById('save').addEventListener('click',
save_options);
});