最新JavaScript语言与Ajax应用第05章 事件处理(共53张PPT课件).pptx
《最新JavaScript语言与Ajax应用第05章 事件处理(共53张PPT课件).pptx》由会员分享,可在线阅读,更多相关《最新JavaScript语言与Ajax应用第05章 事件处理(共53张PPT课件).pptx(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、主编(zhbin) 董宁 陈丹中国水利水电出版社第一页,共五十三页。第 5 章 事件处理第二页,共五十三页。目 录第5章 事件处理 5.1 浏览器中的事件浏览器中的事件 5.2 事件与事件与DOM 5.3 用用JavaScript处理事件处理事件 5.4 事件处理高级事件处理高级(goj)应用应用 第三页,共五十三页。5.1 浏览器中的事件(shjin) 第5章 事件处理事件是指用户载入目标页面(y min)直到该页面(y min)被关闭期间浏览器的动作及该页面(y min)对用户操作的响应。事件的复杂程度大不相同,简单的如鼠标的移动、当前页面(y min)的关闭、键盘的输入等,复杂的如拖曳页
2、面(y min)图片或单击浮动菜单等。 事件处理器是与特定的文本和特定的事件相联系的 JavaScript 脚本代码,当该文本发生改变或者事件被触发时,浏览器执行该代码并进行相应的处理操作,而响应某个事件而进行的处理过程称为事件处理。第四页,共五十三页。5.1 浏览器中的事件(shjin)第5章 事件处理 HTML 文档事件可以分为浏览器事件和HTML 元素事件两大类。在这里我们着重介绍浏览器事件。 HTML 文档将元素的常用事件(如onclick、onmouseover 等)当作属性捆绑在HTML元素上,当该元素的特定事件发生时,对应于此特定事件的事件处理器就被执行,并将处理结果返回给浏览器
3、。事件捆绑则将特定的代码放置在其所处(su ch)对象的事件处理器中。 浏览器事件指载入文档直到该文档被关闭期间的浏览器事件,如浏览器载入文档事件onload、关闭该文档事件onunload、浏览器失去焦点事件onblur、获得焦点事件onfocus 等。第6章 面向对象的高级应用及C#语法(yf)新特性第五页,共五十三页。5.1 浏览器中的事件(shjin)第5章 事件处理【例5-1】浏览器中的事件。 5-1 window.onload = function() var msg = nwindow.load 事件: nn; msg += 浏览器载入了文档!; alert(msg); wind
4、ow.onfocus = function() var msg = nwindow.onfocus 事件: nn; msg += 浏览器取得了焦点(jiodin)!; alert(msg); window.onblur = function() var msg = nwindow.onblur 事件: nn; msg += 浏览器失去了焦点!; alert(msg); 第六页,共五十三页。5.1 浏览器中的事件(shjin)第5章 事件处理window.onscroll = function() var msg = nwindow.onscroll 事件: nn; msg += 用户(yngh
5、)拖动了滚动条!; alert(msg); window.onresize = function() var msg = nwindow.onresize 事件: nn; msg += 用户改变了窗口尺寸!; alert(msg); 第七页,共五十三页。5.1 浏览器中的事件(shjin)第5章 事件处理 window.onscroll = function() var msg = nwindow.onscroll 事件(shjin): nn; msg += 用户拖动了滚动条!; alert(msg); window.onresize = function() var msg = nwindo
6、w.onresize 事件: nn; msg += 用户改变了窗口尺寸!; alert(msg); 第八页,共五十三页。5.1 浏览器中的事件(shjin)第5章 事件处理 载入文档: 取得焦点: 失去焦点: 拖动滚动条: 变换尺寸(ch cun): 当载入该文档时,触发window.onload事件;当把焦点给该文档页面时,触发 window.onfocus 事件;当该页面失去焦点时,触发 window.onblur 事件;当用户拖动滚动条时,触发 window.onscroll 事件;当用户改变文档页面大小时,触发 window.onresize 事件。第九页,共五十三页。5.2 事件(s
7、hjin)与DOM 第5章 事件处理 JavaScript 代码的核心是由事件把所有东西融合在一起。在一个设计良好的JavaScript 应用程序里,都会拥有数据源(被解析为DOM的HTML文档)和它的视觉的表示(浏览器显示的HTML页面)。为了同步这两个方面,还必须监视用户的交互动作并试图相应地更新用户界面。DOM 和JavaScript 事件的结合是任何现代Web应用程序赖以工作的至关重要的组合。 事件是DOM的一部分,在DOM Level 1中未定义任何事件,只在DOM Level 2中才定义了一小部分子集,完整的事件是在DOM Level 3中规定的。由于早前没有标准指导,事件都是由浏
8、览器开发者自己发明的模型实现的。尽管事件在不同的浏览器之间存在不同的DOM实现,但一些基本的性质还是相同的。下面(xi mian)我们看看在DOM事件处理中的一些关键技术。 第十页,共五十三页。5.2 事件(shjin)与DOM第5章 事件处理1事件流在二级DOM标准中,事件处理程序比较复杂,当事件发生的时候,目标节点的事件处理程序就会被触发执行,但是目标节点的父节点也有机会来处理这个事件。事件的传播分为三个阶段,首先是捕捉阶段,事件从document对象沿着DOM树向下传播到目标节点,如果目标的任何一个父节点注册了捕捉事件的处理程序,那么(n me)事件在传播的过程中就会首先运行这个程序;下
9、一个阶段就是发生在目标节点自身了,注册在目标节点上的相应的事件处理程序就会执行;最后是起泡阶段,事件将从目标节点向上传回给父节点,同样,如果父节点有相应的事件处理程序也会处理。在IE中,没有捕捉的阶段,但是有起泡的阶段。可以用stopPropagating()方法来停止事件传播,也就是让其他元素对这个事件不可见,在IE 6中,就是把cancelBubble设置为true。第十一页,共五十三页。5.2 事件(shjin)与DOM第5章 事件处理2注册事件处理程序 和IE一样,DOM标准也有自己的事件处理程序,不过DOM二级标准的事件处理程序比IE的强大一些,事件处理程序的注册用addEventL
10、istner()方法,该方法有三个参数,第一个是事件类型,第二个是处理的函数,第三个是一个布尔值。true表示制定的事件处理程序将在事件传播的阶段用于捕捉事件,否则就不捕捉;当事件发生在对象(duxing)上才触发执行这个事件处理的函数,或者发生在该对象(duxing)的字节点上,并且向上起泡到这个对象(duxing)上的时候,触发执行这个事件处理的函数。例如: document.addEventListener(mousemove,moveHandler,true);第十二页,共五十三页。5.2 事件(shjin)与DOM第5章 事件处理3二级DOM标准中的Event和IE不同的是,W3C
11、DOM中的Event对象并不是window全局对象下面(xi mian)的属性,换句话说,event不是全局变量。通常在DOM二级标准中,event作为发生事件的文档对象的属性。Event对象含有两个子接口,分别是UIEvent和MutationEvent,这两个子接口实现了Event对象的所有方法和属性,而MouseEvent接口又是UIEvent的子接口,所以实现了UIEvent和Event的所有方法和属性。第十三页,共五十三页。5.3 用JavaScript处理事件 第5章 事件处理5.3.1 利用伪链接处理事件 所谓伪链接是人们对非标准化通信机制的统称。而“真”链接特指那些用来在因特网
12、上的两台计算机之间传输各种数据包的标准化通信机制,如:http:/、ftp:/等。 JavaScript伪链接就是(jish)使用a标签的href属性来运行JavaScript的一种方法,例如: link 当你点击这个链接的时候,页面不发生跳转,但是会运行callback()这个方法。 在多数支持JavaScript脚本的浏览器中,可以通过JavaScript伪URL地址调用语句来引入JavaScript脚本代码。第十四页,共五十三页。5.3 用JavaScript处理事件 第5章 事件处理5.3.2 内联的事件处理 在一个元素的属性中绑定事件,实际上就创建(chungjin)了一个内联事件处
13、理函数,比如:.通过事件属性,事件处理函数也可以直接用到HTML元素上。 第十五页,共五十三页。5.3 用JavaScript处理事件 第5章 事件处理1内联事件处理函数的作用域链与其他函数不同,内联事件处理函数的作用域链从头部开始依次是:调用对象、该元素的 DOM 对象、该元素所属(sush)表单的 DOM 对象(如果有)、document 对象、window 对象(全局对象)。比如下面代码: 第十六页,共五十三页。5.3 用JavaScript处理事件 第5章 事件处理就相当于: document.getElementsByTagName(input)0.onclick = functio
14、n() with (document) with (this.form) with (this) alert(compatMode); 第十七页,共五十三页。5.3 用JavaScript处理事件 第5章 事件处理2内联事件处理函数的作用域链在各浏览器中的差异 各浏览器都会将内联事件处理函数所属的元素的 DOM 对象(duxing)加入到作用域链中,但加入的方式却是不同的。如以下代码: 在所有浏览器中,都将弹出显示“hello”的对话框。第十八页,共五十三页。5.3 用JavaScript处理事件 第5章 事件处理再修改代码改变input元素的内联事件处理函数的执行上下文: var targe
15、t = document.getElementsByTagName(input)0; var o = onclick: target.onclick, value: Hi, Im here! ; o.onclick(); 在IE浏览器中运行(ynxng)的结果为弹出显示“Hi, Im here!”的对话框,在Firefox中运行的结果为弹出显示“hello”的对话框。 第十九页,共五十三页。5.3 用JavaScript处理事件 第5章 事件处理5.3.3 无侵入的事件处理很多情况下,JavaScript代码往往内嵌在HTML文件的元素标签内。例如,下面是一个典型的JavaScript代码内嵌
16、在HTML文件的元素标签内:然而,HTML主要是用来描述页面的结构,而不是实现行为的。倘若将二者结合在一起(yq)会直接影响网站的可维护性,所以不推荐这两者相结合。第二十页,共五十三页。5.3 用JavaScript处理事件第5章 事件处理 现在(xinzi)编写JavaScript代码都是为了使它与HTML页面非侵入地交互。为实现这一点,可以结合三种技术来使一个Web应用程序以非侵入的形式被构造: 首先,Web应用程序中的所有功能都应经过验证。比如说,如果你希望访问DOM,你需要验证它存在且具有你需要使用的所有的功能,比如使用如下代码: if(document&document.getEle
17、mentById) 然后,使用DOM 来快速而一致地访问你文档中的元素。 最后,使用DOM 和addEvent 函数动态地将所有事件绑定到文档中。 第二十一页,共五十三页。5.3 用JavaScript处理事件第5章 事件处理5.3.4 window.onload事件 操作HTML DOM文档的一个难题是, JavaScript 代码可能在DOM 完全载入之前运行,这会导致代码产生一些问题。页面加载时浏览器内部操作的顺序大致是这样的: HTML被解析外部脚本/样式表被加载文档解析过程中内联的脚本被执行(zhxng)HTML DOM 构造完成图像和外部内容被加载页面加载完成。第二十二页,共五十三
18、页。5.3 用JavaScript处理事件第5章 事件处理1等待大部分DOM加载 在HTML页面中内联的JavaScript代码实际上是在DOM构造过程中解析到了代码就执行的。这就是说如果有一段内联的JavaScript代码嵌在页面的中间部分,则该JavaScript代码只能(zh nn)立即拥有前半部分DOM的访问权。然而,把JavaScript代码作为后续的元素嵌入页面中,就意味着我们能够有效地对先于它出现的所有的DOM元素进行访问,获得一种虚拟的模拟DOM加载的方式。 第二十三页,共五十三页。5.3 用JavaScript处理事件第5章 事件处理 Testing DOM Loading
19、function init() alert(The DOM is loaded!); document.getElementsByTagName(h1)0.style.border = 4px solid black; Testing DOM Loading init(); 第二十四页,共五十三页。5.3 用JavaScript处理事件第5章 事件处理2判断DOM 何时加载完成这是一种可用来监视DOM 加载的技术。这一技术的原理是在不阻塞浏览器的前提下尽可能快地反复检查DOM是否已经(y jing)具有了所需的特性。 第二十五页,共五十三页。5.3 用JavaScript处理事件第5章 事件处
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新JavaScript语言与Ajax应用第05章 事件处理共53张PPT课件 最新 JavaScript 语言 Ajax 应用 05 事件 处理 53 PPT 课件
限制150内