Javascript 添加事件侦听器时出错

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

首先,我知道这类问题已经被问了上千次了,但为什么这不管用呢? 我有一个chrome扩展,带有options.html和一个保存按钮,用于将内容保存到本地存储:

<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);
});