在Chrome浏览器下,遇到了这个错误提示:Uncaught TypeError: Cannot set property 'onClick' of null。
先贴一下JS的代码
document.getElementById("#register button").onclick=function(){ alert('222'); }后来查了是因为我的JS文件引入的顺序比标签加载的早,so,把js文件的引入放到了body下,但是依然报错。多处查询后,解决办法如下:
网页中的javaScript脚本代码往往需要在文档加载完成后才能够去执行,否则可能导致无法获取对象的情况,为了避免这种情况的发生,可以使用以下两种方式:通过window.onload来执行脚本代码。window.onload是一个事件,当文档加载完成之后就会触发该事件,可以为此事件注册事件处理函数,并将要执行的脚本代码放在事件处理函数中,于是就可以避免获取不到对象的情况。1:window.onload=function(){},使用此种方式为window.onload事件绑定事件处理函数,这里绑定的是一个匿名函数,当然也可以绑定非匿名函数。2:可以使用addEventListener()和attachEvent()为onload事件绑定事件处理函数,addEventListener()是当前标准的一种事件处理函数绑定方式,但是IE8和IE8以下的浏览器并不支持此方式(addEventListener("type",函数名,false))。
这时用第一种方法就可以解决问题,如果要处理多个事件的绑定,要用第二种方法
//方法一:
window.onload = function () { document.getElementById("register").onclick=function(){ alert('222'); } }//方法二:(支持各大浏览器)
//方法二 if(window.addEventListener){ window.addEventListener("load",alert1,false); window.addEventListener("load",alert2,false); } else{ window.attachEvent("onload",alert1); window.attachEvent("onload",alert2); } function alert1(){ document.getElementById("register").onclick=function () { alert('测试1'); }; } function alert2(){ document.getElementById("register").onclick=function () { alert('测试2); }; }