JavaScript高级程序设计43.pdf
事件类型
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的更多相关文章
- JavaScript高级程序设计61.pdf
JSON对象 早期的JSON解析器就是使用JavaScript的eval()函数,ECMAScript5对解析JSON的行为做出了规定,定义了全局对象JSON. JSON对象有2个方法:stringi ...
- JavaScript高级程序设计60.pdf
错误处理 try-catch语句 try{ //可能会导致错误的代码 }catch(error){ //在错误发生时如何处理 } error是一个包含着错误信息的对象,它有一个message属性,保存 ...
- JavaScript高级程序设计58.pdf
15章 使用Canvas绘图 略 16章 HTML5脚本编程 HTML5规范了新的HTML标记和JavaScript API,以便简化创建动态Web界面的工作 跨文档消息传递 简称XDM,指来自不同域 ...
- JavaScript高级程序设计57.pdf
表单序列化 首先了解一下浏览器如何将数据发送给服务器 对表单字段的名称和值进行URL编码,使用和号(&)分隔 不发送禁用的表单字段 只发送勾选的复选框和单选按钮 不发送type为“reset” ...
- JavaScript高级程序设计55.pdf
输入模式 HTML5为文本字段新增了pattern属性,这个属性的值是一个正则表达式,用于匹配文本框中的值 例如,只想在允许在文本字段中输入数值 <input type="text&q ...
- JavaScript高级程序设计54.pdf
过滤输入 对于一些浏览器,可以使用正则表达式里的text()测试用户按下的按键,Firefox和safari(3.1版本之前)会对向上向下.退格键和删除键触发keypress事件,在Firefox中, ...
- JavaScript高级程序设计53.pdf
共有的表单字段方法 每个表单字段都有两个方法:focus()和blur(),其中focus()用于将浏览器焦点设置到表单字段,激活表单字段.可以侦听页面的load事件 EventUtil.addHan ...
- JavaScript高级程序设计52.pdf
表单脚本 表单的基础知识 在HTML中,表单是由<form>元素表示的,在Javascript对应的是HTMLFormElement类型,它继承自HTMLElement,因此具有与其他HT ...
- JavaScript高级程序设计50.pdf
hashchange事件 HTML5新增了hashchange事件,以便在URL的参数列表(及URL中“#”号后面的所有字符串)发生变化时通知开发人员,之所以新增这个事件,是因为在Ajax应用中,开发 ...
随机推荐
- HTML教程:link标记
开发php语言的网站,<head>里link标签这样:<link href="xmlrpc.php?rsd=1" title="rsd" ty ...
- Linux下使用openvpn客户端
安装 root 权限用户下 :yum install openvpn fedora23的yum可能会切换到dnf源上安装不必在意,等待就ok. 稍等片刻将自动安装好openvpn需要的软件包.安装完成 ...
- php返回json数据函数实例
本文实例讲述了php返回json数据函数的用法,分享给大家供大家参考.具体方法如下: json_encode()函数用法: ? 1 echo json_encode(array('a'=>'bb ...
- epoll和select区别
先说下本文框架,先是问题引出,然后概括两个机制的区别和联系,最后介绍每个接口的用法 一.问题引出 联系区别 问题的引出,当需要读两个以上的I/O的时候,如果使用阻塞式的I/O,那么可能长时间的阻塞在一 ...
- osg(OpenSceneGraph)学习笔记1:智能指针osg::ref_ptr<>
OSG的智能指针,osg::ref_ptr<> osg::Referenced类管理引用计数内存块,osg::ref_ptr需要使用以它为基类的其它类作为模板参数. osg::ref_pt ...
- Things About 'extern'
Note: All Learned From Here C和Objective-C的function前面都有个隐含的extern,对于function来说,有没有extern都无所谓,但变量不一样. ...
- STM32内存映射
一.概述 STM32内存映射是STM32的架构的重要组成部分,不可或缺. 二.STM32内存映射图 1.内存映射图--摘自<CM3权威指南> 2.内存映射图--摘自<STM32F10 ...
- Leaflet学习笔记-Leaflet.awesome-markers
基础篇传送门 http://www.cnblogs.com/CoffeeEddy/p/4919987.html 效果图 是不是感觉很美观啊 为什么选择awesome 地图上面需要各种各样的Mark,难 ...
- Entity Framework: 视图查询时重复返回第一行值, duplicate frst rows in resultset from a view
http://blog.csdn.net/riverlau/article/details/7476449 1. 使用rownumber给view加上一个标示列 SELECT ROW_NUMBER() ...
- AppStore IPv6-only审核被拒原因分析及解决方案-b
自2016年6月1日起,苹果要求所有提交App Store的iOS应用必须支持IPv6-only环境,背景也是众所周知的,IPv4地址已基本分配完毕,同时IPv6比IPv4也更加高效,向IPv6过渡是 ...