我正在做一个Chrome应用,我有一个事件监听器,它首先监听所有DOM是否准备就绪,然后它会触发另外两个关于点击按钮的监听器。我用这种方式嵌套了所有这些:
document.addEventListener('DOMContentLoaded', function() {
var cf = document.getElementById('conv');
var gf = document.getElementById('gotof');
cf.addEventListener('click', convert, false);
gf.addEventListener('click', gotof, false);
},false);
但是在控制台中我仍然会收到
的消息Uncaught TypeError: Cannot call method 'addEventListener' of null
发生这种情况是因为我在没有时间加载DOM时尝试调用id conv
,但是......我的第一个事件监听器没有处理这个问题吗?我猜想无论你使用DOMContentLoaded在事件的函数内部进行什么操作,都不会运行,除非所有内容都被加载...
调用的两个id指的是html文件中定义的按钮对象。如果我在html中定义它们或者我用js语法定义它们会有所不同(如createElement
编辑以显示此代码引用的html:
<input type="button" class="css_button" value="Convert to DJ Ticker" id="conv" >
<input type="button" class="css_button" value="Go to website" id="gotof" >
据我所知,按钮有一个id,所以它们应该被getElementById捕获,以便为它们提供一个函数。
谢谢!