码迷,mamicode.com
首页 > Web开发 > 详细

JS 事件学习笔记(二)

时间:2015-06-15 18:54:27      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:javascrpit   事件   

JS事件学习笔记(一)中学习了事件流、事件处理程序、事件对象以及跨浏览器应该怎么做等知识,现在我们现在来学习浏览器中主要的各种事件。

一. load事件

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并将结点添加到文档中前不会下载。

二. unload事件

在文档被卸载后出发,只要发生了页面跳转就会触发,常用于清除引用,避免内存泄露。
根据DOM2级规定,应当在body元素上触发该事件,但同样所有浏览器的window对象都实现了该事件,因此为确保兼容性建议在window对象上绑定改事件。此外,还应该注意卸载后很多元素对象都消失了,再对它们进行操作会出错。

JS 事件学习笔记(二)

标签:javascrpit   事件   

原文地址:http://blog.csdn.net/vivianhope/article/details/46504471

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!