用于HTML内代码层和UI层分离。 比如,你要给一个按钮增加一个单击事件,你会怎么做? <input type="button" id="theBtn" value="点击" onclick="alert('点击了一下');" /> 明显的,它破坏了标签,如果下次要修改这个按钮不小心就会丢失。 attachEvent是为了将事件分离,如: <input type="button" id="theBtn" value="点击" /> var theBtn = document.getElementById("theBtn"); //取得ID为theBtn的按钮 theBtn.attachEvent("onclick", buttonClicked); //给按钮增加事件 function buttonClicked(e){ alert("点击了一下"); } //定义函数 attachEvent用法: attachEvent(事件类型, 处理函数); P.S.:在Firefox中,对应的函数是addEventListener(事件类型, 处理函数, 使用捕获); 在简单的HTML应用中可能用不用效果不明显,但是在复杂的HTML客户端JS代码内,优势就体现出来了。
Firefox中是addEventListener方法
if (window.addEventListener) {
window.addEventListener('DOMContentLoaded', handler, false); //firefox
window.addEventListener('load', handler, false);
} else if (window.attachEvent) {
window.attachEvent('onload', handler); //IE
}
http://cache.baidu.com/c?m=9d78d513d99017f90fa9c3224b488c275f03dc347cc0d0642288cd15c0324f060738ece161645213d2b6617a59e71909b2b17d6537747bf1cc83df5dddccc3757095776a2d499b4417d912adc8&p=8970c54ad5c54add0aafc771070089&user=baidu&fm=sc&query=addEventListener+onload&qid=c7edbbe426f9d282&p1=1#baidusnap0