标签:javascrpit 事件
在JS事件学习笔记(一)中学习了事件流、事件处理程序、事件对象以及跨浏览器应该怎么做等知识,现在我们现在来学习浏览器中主要的各种事件。
load事件通常是通过JavaScript代码指定,在window对象上绑定,实际上根据DOM2规定,应该在document上而非window上触发load事件,但是所有浏览器都在window对象上实现了该事件。因此以确保兼容性推荐使用该方法;
另外,在window上发生的事件也可以作为body元素的属性在html代码中添加。
load事件的意思是整个文档都加载完了(包括图片、JS、CSS文件、body部分等)再触发,通常如果需要修改DOM树或者获取其中的某个结点都应当是文档加载完毕后才能获取到,否则会报错。另外img元素也可以绑定该事件,表示图片下载完了以后触发,这里有几点需要注意的:
在img元素上绑定该事件应该在指定src属性前,因为只要指定了src属性就会开始下载,无论该img元素当前有没有被添加到DOM树中。而事件的绑定应该在事件发生以前:
EventUtil.addHandler(window,"load",function(){
var image = document.createElement("img");
EventUtil.addHandler(image,"load",function(event){
event = EventUtil.getEvent(event);
alert(EventUtil.getTarget(event).src);
});
document.body.appendChild(image);
image.src="norton.jpg";
})
此外,script元素也可以添加load事件,但是script和img不同的地方是,如果设置了src,没有添加到文档中,脚本也不会下载,也就是说在没有将script添加到文档树中时,设置src和绑定load事件的先后顺序没有要求。
IE和opera还支持link元素添加load事件以确定样式是否加载完毕。link和script类似,在未指定href并将结点添加到文档中前不会下载。
在文档被卸载后出发,只要发生了页面跳转就会触发,常用于清除引用,避免内存泄露。
根据DOM2级规定,应当在body元素上触发该事件,但同样所有浏览器的window对象都实现了该事件,因此为确保兼容性建议在window对象上绑定改事件。此外,还应该注意卸载后很多元素对象都消失了,再对它们进行操作会出错。
标签:javascrpit 事件
原文地址:http://blog.csdn.net/vivianhope/article/details/46504471