2017-03-05 145 views
-1

首先,我知道这种问题已被问过千次,但为什么不起作用? 我有一个Chrome扩展与options.html和保存键东西到本地存储:添加事件监听器时出错

<div>  
    <button type="button" name="save" class="btn btn-primary btn-md active" id="save">SAVE</button>   
</div>  

这是我options.js:

document.getElementById('save').addEventListener('click', 
save_options); 

但是,它给了我这个铬控制台中的错误:

Uncaught TypeError: Cannot read property 'addEventListener' of null 

我在忽略什么?

+0

会发生什么第一个脚本或按钮? – Banzay

+0

你在哪里/如何包括JS? – SLaks

+0

谢谢大家,StasiekK回答工作。 – Noah

回答

0

您尝试将事件侦听器添加到尚未创建的元素。 在DOM生成后,将事件过滤器添加到DOMContentLoaded以执行您的侦听器。

document.addEventListener("DOMContentLoaded", function() { 
    document.getElementById('save').addEventListener('click', 
    save_options); 
}); 

这应该做的工作。

2

您获得的错误,因为你正试图将事件侦听器添加到已尚未创建一个元素,把你的JS脚本在身体的末端,或者使用DOMContentLoaded事件,