事件类型

Web浏览器中有很多事件类型,“DOM3级事件”规定了以下几类事件

UI事件(用户界面),当用户与页面上的元素交互时触发;

焦点事件,当元素获得或失去焦点时触发

鼠标事件,当用户通过鼠标在页面上执行操作时触发

滚轮事件,当用户使用鼠标滚轮(或类似设备)时触发

文本事件,当在文档中输入文本时触发

键盘事件,当用户通过键盘在页面上执行操作时触发

合成事件,当为IME(输入法编辑器)输入字符时触发

变动事件,当底层DOM结构发生变化时触发

变动名称事件,当元素或属性名变动时触发,已废弃不做介绍

UI事件

UI事件指得是那些不一定与用户操作有关的事件

DOMActivate:表示元素已经被用户操作激活,DOM3级事件中已被废弃

load:页面加载完全后在window上触发,框架都加载完成后在框架集上触发,图像加载完成后在<img>元素上面触发,或者当嵌入的内容加载完毕时在<object>元素上面触发

unload:页面完全卸载后在window上面触发,所有框架卸载后在框架集上触发,或者当嵌入的内容加载卸载时在<object>元素上面触发

abort:在用户停止下载过程时,如果嵌入的内容没有加载完,则在<object>元素上面触发

error:当发生JavaScript错误时,在window上面触发,无法加载图片时在<img>元素上触发,无法加载嵌入内容时在<object>元素上面触发,或者当有一个或者多个框架无法加载时在框架集上面触发

select:当用户选择文本框(<input><textarea>)中的一个或多个字符时触发

resize:当窗口或框架的大小发生变化时在window或框架上面触发

scroll:当用户滚动带滚动条的元素中的内容时,在该元素上面触发。<body>元素中包含所加载页面的滚动条

除了DOMActivate之外,其他事件在DOM2级事件中都归为HTML事件

var isSupported=document.implementation.hasfeature("HTMLEvents","2.0");  //浏览器是否支持DOM2级事件规定的HTML事件

var isSupported=document.implementation.hasfeature("UIEvents","3.0");  //浏览器是否支持DOM3级事件规定的事件

load事件

页面完全加载后(包括所有图像、JavaScript文件、CSS文件等外部资源),就会触发window上面的load事件,有两种方式处理该事件

EventUtil.addHandler(window,"load",function(event){  //window可以替换成从image取得的元素

      alert("Loaded!");

    });

<body onload="alert('Loaded!')">  //body可以替换成img元素

“DOM2级事件”规范,应该在document而非window上面触发load事件,但所有浏览器都在window上面触发,以确保向后兼容

还有一些元素以非标准的方式支持load事件,一下版本浏览器中<script>元素也会触发load事件,以确定Javascript文件是否加载完成,还有<link>元素的load事件(这些不推荐使用)

JavaScript高级程序设计43.pdf的更多相关文章

  1. JavaScript高级程序设计61.pdf

    JSON对象 早期的JSON解析器就是使用JavaScript的eval()函数,ECMAScript5对解析JSON的行为做出了规定,定义了全局对象JSON. JSON对象有2个方法:stringi ...

  2. JavaScript高级程序设计60.pdf

    错误处理 try-catch语句 try{ //可能会导致错误的代码 }catch(error){ //在错误发生时如何处理 } error是一个包含着错误信息的对象,它有一个message属性,保存 ...

  3. JavaScript高级程序设计58.pdf

    15章 使用Canvas绘图 略 16章 HTML5脚本编程 HTML5规范了新的HTML标记和JavaScript API,以便简化创建动态Web界面的工作 跨文档消息传递 简称XDM,指来自不同域 ...

  4. JavaScript高级程序设计57.pdf

    表单序列化 首先了解一下浏览器如何将数据发送给服务器 对表单字段的名称和值进行URL编码,使用和号(&)分隔 不发送禁用的表单字段 只发送勾选的复选框和单选按钮 不发送type为“reset” ...

  5. JavaScript高级程序设计55.pdf

    输入模式 HTML5为文本字段新增了pattern属性,这个属性的值是一个正则表达式,用于匹配文本框中的值 例如,只想在允许在文本字段中输入数值 <input type="text&q ...

  6. JavaScript高级程序设计54.pdf

    过滤输入 对于一些浏览器,可以使用正则表达式里的text()测试用户按下的按键,Firefox和safari(3.1版本之前)会对向上向下.退格键和删除键触发keypress事件,在Firefox中, ...

  7. JavaScript高级程序设计53.pdf

    共有的表单字段方法 每个表单字段都有两个方法:focus()和blur(),其中focus()用于将浏览器焦点设置到表单字段,激活表单字段.可以侦听页面的load事件 EventUtil.addHan ...

  8. JavaScript高级程序设计52.pdf

    表单脚本 表单的基础知识 在HTML中,表单是由<form>元素表示的,在Javascript对应的是HTMLFormElement类型,它继承自HTMLElement,因此具有与其他HT ...

  9. JavaScript高级程序设计50.pdf

    hashchange事件 HTML5新增了hashchange事件,以便在URL的参数列表(及URL中“#”号后面的所有字符串)发生变化时通知开发人员,之所以新增这个事件,是因为在Ajax应用中,开发 ...

随机推荐

  1. cocos2d-x使用DragonBones动画

    前言 在网上查找关于DragonBones在cocos2d-x的使用教程,找了大半天也没有找到一个有用的.在自己摸索了一段时间终于摸索了出来,在这里记下分享给大家. 下载DragonBones 我这里 ...

  2. Sdut 2416 Fruit Ninja II(山东省第三届ACM省赛 J 题)(解析几何)

    Time Limit: 5000MS Memory limit: 65536K 题目描述 Haveyou ever played a popular game named "Fruit Ni ...

  3. 第16章 网络IPC:套接字总结

    1 套接字是通信端点的抽象 创建套接字: int socket(int domain,int type,int protocol) domain:通信域 AF_INET.AF_INET6.AF_LOC ...

  4. java特殊运算符(转)

    原码:符号位用0表示正号,用1表示负号,数值一般用二进制形式表示 反码:机器数的反码可由原码得到.如果机器数是正数,则该机器数的反码与原码一样:如果机器数是负数,则该机器数的反码是对它的原码(符号位除 ...

  5. samba和squid 安装

    一. samba配置1. 什么是sambaSamba服务类似于windows上的共享功能,可以实现在Linux上共享文件,windows上访问,当然在Linux上也可以访问到.是一种在局域网上共享文件 ...

  6. 深入了解overflow

    1.如果overflow-x与overflow-y值不同   其中一个赋值为visiable,另一个赋值scroll/auto/hidden,那么visiable会重置为auto 2.overflow ...

  7. php 加载函数 __autoload(), spl_autoload_register()

    来自:http://www.cnblogs.com/myluke/archive/2011/06/25/2090119.html spl_autoload_register (PHP 5 >= ...

  8. IE6背景图片闪动问题

    在IE6中,当JS触发事件时或者hover的时候,如果网速过慢 IE6背景图片重新加载会闪一下. 好的一个解决方案是 <!--[if IE 6]><script> try{do ...

  9. js+jquery检测用户浏览器型号(包括对360浏览器的检测)

    做网站,js检测用户浏览器的版本,是经常要使用到,今天自己写了一个js,完成了对于一些常见浏览器的检测,但是,偏偏对于360浏览器的检测没有任 何办法,研究了一会儿,无果.无论是360安全浏览器,还是 ...

  10. STM32的GPIO

    一.I/O端口位的基本结构 二.端口位配置表 参考:STM32芯片参考手册