一、Web浏览器中可能发生的事件有很多类型;DOM3级事件规定了以下几类事件:
1、 UI事件:当用户与页面上的元素发生交互时触发
2、 焦点事件:当元素获得或者失去焦点时触发
3、 鼠标事件:通过鼠标在页面上执行操作时触发
4、 滚轮事件:使用鼠标滚轮时触发
5、 文本事件:在文档中输入文本时触发
6、 键盘事件:用户通过键盘在页面上执行操作时触发
7、 变动事件:当底层DOM结构发生改变时触发
8 、 合成事件:当为IME(input method editor输入法编辑器)输入文字时触发
二、具体事件及使用概述
1、load事件:当资源(页面、图片、js文件、css文件)完全加载完成后触发。所以触发元素可以是:window、img、script、link(IE和Opera).
2、unload事件:这个事件在文档被完全卸载后触发,只要用户从一个页面切换到另一个页面,就会触发unload事件,经常被用来清除引用,以避免内存泄露,使用:在window上实现了unload事件
3、resize事件:当浏览器窗口调整到一个新的宽度或高度时,就会触发resize事件,这个事件在window上触发
4、scroll事件:在window对象上发生的。在混杂模式下,通过body元素的scrollTop和scrollLeft来检测到这一变化,而在标准模式中,所有浏览器会通过<html>元素来反映这一变化。
5、blur事件:当元素失去焦点时触发,这个事件不会冒泡,所有浏览器都支持(focusout与blur等价,但是支持冒泡)
6、focus事件:在元素获得焦点时触发,这个事件也不会冒泡,所有浏览器都支持它(focusin同focus等价,但是支持冒泡)
7、click事件:点击鼠标左键或者按下键盘回车键时触发。
8、dbclick事件:双击鼠标左键时触发
9、mouseenter:鼠标光标从元素外部首次移动到元素内部时触发,不冒泡
10、mouseleave:鼠标光标从元素上方移动到元素外部时触发,不冒泡而且光标移动到后代元素上不会触发。
11、mousemove:当鼠标光标在元素内部移动时重复触发
12、mouseover:同mouseenter,但是支持冒泡
13、mouseout:同mouseleave,但支持冒泡,且当鼠标光标从父元素移动到子元素也会被触发。
14、mouseup:用户释放鼠标按钮时触发。Mousedown:鼠标按下按钮时触发
15、keydown:当用户按下键盘上任意键时触发。
16、keypress:当用户按下键盘上的字符键时触发。按下esc键或者能够影响文本显示的键(例如退格键)也会触发该事件,
17、keyup:当用户释放键盘上的键时触发。
18、textInput:DOM3级事件规范中引入的新事件,当用户在可编辑区域中输入字符时就会触发该事件,
19、contextmenu事件:当点击鼠标右键时触发的显示上下文菜单的事件,这里显示的菜单是浏览器默认的菜单,若想取消这个默认行为,自己设置显示菜单,可以使用方法。PreventDefault().IE中将event.returnValue属性设置为false即可。这个事件属于鼠标事件,所以其事件对象中包含与光标位置有关的所有属性(clientX、clientY、pageX、pageY)
20、beforeunload事件:window对象上的事件,在浏览器卸载页面之前触发,通过设置event.returnValue的值来设置要给用户显示的字符串,并通过函数值返回。询问用户是否确定要卸载页面。
21、DOMcontentLoaded事件:在浏览器形成完整的DOM树之后就会触发。
22、readystatechange事件:window、script、link对象中包含此事件,这个事件的事件对象包含一个属性,readyState属性。它的不同的取值表示页面加载的不同状态:
Unintialized:对象存在但尚未初始化。
Loading:对象正在加载数据
Loaded:对象加载数据完成
Interactive:可以操作对象,但还没有完全加载。
Complete:对象已经加载完毕。