Js中为对像添加事件的方法

 

在Javascript开发中,除了设置在对像标签上直接添加事件(如:<body onload="…">)外,为一个对像添加事件的方法通常有以下几种:
方法一:对像.事件 = 函数
例如:window.onload = function(){ … }
这种方法虽然属于旧的规范,但由于支持多浏览器,因此还是目前较流行的写法。只是值得注意的是,这种方法指定的事件会被覆盖,比如:
window.onload = function(){alert('hello');}
window.onload = function(){alert('world');}
上面这种情况下,只弹出一个警告框
方法二:setAttribute
例如:window.setAttribute(" function(){ … })
这里利用 setAttribute 通过设置 onload 属性来添加事件,非常简单。但是,IE 并不支持用 setAttribute 设置一部分属性,包括对象属性、集合属性、事件属性,也就是说用 setAttribute 设置 style、 这些属性在 IE 中是行不通的。
方法三:attachEvent 和 addEventListener
attachEvent是一种比较规范的写法,也支持多次定义,例如:window.attachEvent(" function(){...}),但仅支持IE;
非IE的浏览器使用addEventListener,区别是在事件定义时,去掉前面的 "on",并在最后加上 ", false",例如:window.addEventListener("load", function(){...}, false)