`
rockyuse
  • 浏览: 195409 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JavaScript--事件模型

 
阅读更多

在各种浏览器中存在三种事件模型:

原始事件模型( original event model),DOM2事件模型,IE事件模型 .

其中原始的事件模型被所有浏览器所支持,而DOM2中所定义的事件模型目前被除了IE以外的所有主流浏览器支持.


1.原始事件模型

其事件类型:分为"输入事件(如onclicki)"和"语义事件(如onsubmit)"

事件程序的注册可以以下几种方式:
         1、JS代码作为HTML性质值

<input type="button" value="Press me" onclick="alert('thanks');"

2、事件处理程序作为JS属性

  附注:文档中的每个HTML元素在文档树中都有一个相应的JS对象,这个JS对象的属性对应于那个HTML元素的性质,无论作为HTML性质的JS代码还是作为JS属性的时间处理程序,其本身的属性都是函数"function".

<form name="f1">
<input name="b1" type="button" value="Press Me"/>
</form>

第一种赋值方式:

document.f1.b1.onclick=function(){alert('thanks');};

第二种赋值方式:

function plead(){window.status="Please Press Me!";}
document.f1.bi.onmouseover=plead;

作为JS属性的事件处理程序可以用JS属性显式调用

document.myfrom.onsubmit();

事件处理程序可以返回fale来阻止浏览器执行事件的默认动作,常用的如对onsubmit的操作。例外是
对超链接mouseover的window.status显示事件的阻挡,是返回true.例如:

<a href="help.htm" onmouseover="window.status='help';return true;">help</a>


2.DOM2事件模型

这个模型参考了IE的气泡模型而制定的,它是由w3c制定的规范.在原始模型中事件一旦发生就直接调用事件句柄,没有其它的事件传播过程.而在DOM2模型中事件有一个特殊的传播过程,分为三个阶段:
(1)capturing phase:事件被从document一直向下传播到目标元素,在这过程中如果有哪个祖先元素对该事件感兴趣可以注册自己的处理函数.
(2)target phase:事件到达目标元素,执行目标元素的事件处理函数.
(3)bubbling phase:事件从目标元素上升一直到达document,虽然所有的事件类型都会经历captruing phase阶段但是只有部分事件会经历bubbling phase阶段,例如submit事件就不会被上浮.
在整个的事件传播过程中可以调用event.stopPropagation()来停止事件的传播,调用preventDefault()来阻止浏览器的默认行为.

addEventListener("eventType","handler","true!false");

removeEventListner("eventType","handler","true!false");


3.IE模型

IE 模型也提供了一个event对象封装了事件的详细信息,但是IE不把该对象传入事件处理函数,由于在任意时刻只会存在一个事件,所以IE把它作为全局对象 window的一个属性,IE中的事件传播模式对应于DOM2的第二和第三阶段,首先执目标元素的处理函数,然后向上传播到达document,ie中只 能能捕捉鼠标事件,而DOM2中可以捕捉所有的事件,IE中注册和删除事件处理函数的方法也不同于DOM2.

事件处理函数的注册和删除是通过元素的attachEvent( "eventType","handler") and detachEvent("eventType","handler" ),与dom2不同的是eventType有on前缀

IE与非IE浏览器在事件绑定的执行顺序问题

JavaScript代理

JavaScript基础讲解[七]_事件模型

JS事件模型小结

 

参考资料: JavaScript 博客园   

               JavaScript 百度贴吧

解决 IE7 下 window.status 不显示的问题

<a href="#" onmouseover="window.status='立即刷新对话区内容,默认为每12秒刷新一次。';return true;" onmouseout="window.status='';return true;" target='f1'>help</a>

具体的方法:打开IE7,在“工具—〉Internet 选项—〉安全—〉选中Internet”,点击“自定义级别”,在“允许状态栏通过脚本更新”中选择“启用”就行了。

IE6下不用设置,默认是可以的。

而FF下window.status 默认情况下是不能修改的

分享到:
评论

相关推荐

    photoshop-cc-javascript-ref-2019.pdf

    3. **事件驱动编程**:JavaScript支持事件驱动编程模型,可以在Photoshop中响应用户操作或特定事件,如打开文件、保存文件、关闭文档等,实现动态响应的脚本。 4. **脚本对象模型(Scripting Object Model)**:...

    photoshop-cc-javascript-ref-2015.pdf

    Photoshop的JavaScript支持还包含了一系列事件处理,比如文件打开、保存、关闭时触发的事件。这使得开发响应用户行为的脚本成为可能。例如,你可以编写一个脚本,在每次保存文件时自动添加水印或者调整图像尺寸。 ...

    开源项目-pazams-go-for-javascript-developers.zip

    JavaScript虽然在浏览器环境中通过事件循环实现异步,但在Node.js中也可以使用worker_threads进行多线程编程,但其复杂度和Go相比则显得较高。 4. 语法差异:Go语言没有花括号之外的语法糖,如JavaScript中的箭头...

    第三章:javascript-DOM对象模型-补充课件.ppt

    第三章:javascript-DOM对象模型-补充课件.ppt

    JavaScript对象模型-执行模型

    JavaScript对象模型(Object Model)和执行模型是理解...在实际开发中,利用原型链实现继承、通过构造函数和原型方法创建对象、以及掌握执行模型中的上下文切换和事件循环机制,都是提升JavaScript编程能力的重要步骤。

    photoshop-cc-javascript参考2019

    在实际开发中,了解和掌握Photoshop的事件模型也是很重要的。Photoshop允许脚本监听和响应各种用户交互事件,如点击按钮、选择菜单项等,从而实现动态响应的用户界面。 总的来说,Photoshop CC JavaScript参考2019...

    face-recognition-javascript-webcam-faceapi-main.zip

    javascript-webcam-faceapi-main 暗示了项目结构,其中可能包含HTML文件(用于页面布局和交互)、JavaScript文件(实现人脸识别逻辑)、CSS文件(负责样式设计)、以及可能的图片或数据文件(如预训练模型、样本人脸...

    Photoshop-CS6-JavaScript.zip

    4. **事件处理**:JavaScript可以监听Photoshop中的事件,如打开文件、保存文件或用户交互,然后根据这些事件触发相应的脚本动作。 5. **脚本编写实践**:手册可能会包含一些示例脚本,展示如何实现特定的任务,如...

    JavaScript 对象模型-执行模型

    ### JavaScript对象模型与执行模型详解 #### 一、引言 JavaScript作为一种强大的脚本语言,在Web开发领域占据了举足轻重的地位。其独特的对象模型和执行模型为开发者提供了灵活多变的功能,使得JavaScript能够轻松...

    javascript-in-one-pic

    此外,JavaScript的事件模型和DOM操作也会有所涉及,如事件监听、事件冒泡、事件委托,以及如何通过JavaScript修改和操作HTML元素。 最后,可能会提及JavaScript的错误处理、调试技巧以及性能优化策略,如try/catch...

    JavaScript Tools Guide CC.pdf

    3. **脚本事件**:Photoshop支持通过JavaScript设置脚本事件,当特定事件触发时(如打开文件、保存文件等),会自动执行相应的脚本代码。 4. **图层和对象操作**:JavaScript允许对Photoshop中的图层、选区、路径、...

    javascript事件模型

    JavaScript 事件模型是Web开发中的核心概念,它定义了如何处理和响应用户或浏览器的交互。ECMAScript规范中的ECMA-357是与事件处理相关的一部分,它提供了JavaScript中处理事件的标准。 事件流是JavaScript事件模型...

    JavaScript-学习笔记.pdf

    JavaScript是一种广泛应用于网页编程的语言,它是基于对象和事件驱动的脚本语言,常用于增强网页的交互性、动态效果和数据处理能力。在学习JavaScript时,我们通常会从以下几个重要知识点入手: 1. JavaScript的...

    how-javascript-works.zip

    4. **事件驱动**:JavaScript常用于处理用户的交互事件,如点击按钮、滚动页面等,通过监听和响应这些事件来触发相应的函数。 5. **函数式编程**:JavaScript支持函数作为一等公民,可以将函数作为参数传递,也可以...

    js-高性能JavaScript-JavaScript语言精粹修订版

    - 深入理解DOM事件模型。 - 掌握事件捕获、冒泡等事件传播机制。 4. **CSS操作与样式:** - 学习如何使用JavaScript操作CSS样式。 - 掌握CSS选择器和类的动态应用。 5. **表单验证与数据处理:** - 学习表单...

    Javascript-DOM编程艺术研究.docx

    在实际应用中,JavaScript-DOM编程的艺术不仅包括理解和掌握DOM的基本概念,还包括优化DOM操作以提高性能,比如减少DOM遍历,利用文档碎片(DocumentFragment)进行批量操作,以及使用事件委托等技术。学习DOM编程...

    JavaScript-code_sampe

    - **异步编程**:JavaScript采用非阻塞I/O模型,Promise和Async/Await使得异步编程更加简洁易读。 4. **Ch04**、**Ch05**、**Ch07**、**Ch08**、**Ch09**等章节文件:这些章节可能涵盖JavaScript的基础到进阶特性,...

    李炎恢JavaScript-pdf文档笔记

    学习者将了解到如何通过JavaScript选择、添加、修改和删除DOM元素,以及事件处理机制。 4. **AJAX与异步编程**:AJAX(异步JavaScript和XML)允许在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。...

    javascript事件模型代码

    JavaScript事件模型是JavaScript编程中处理用户交互和状态变化的核心机制。事件模型允许程序在特定条件满足时执行预定的代码,比如用户点击按钮、页面加载完成或数据发生变化等。本节将详细探讨JavaScript事件处理...

    JavaScript-关于JavaScript的学习了解

    3. **事件驱动**:JavaScript通过事件模型来处理用户交互和其他异步任务,如AJAX请求。 4. **原型继承**:对象可以直接继承另一个对象的属性和方法,这种机制比传统的类继承更加灵活。 5. **闭包**:允许函数访问其...

Global site tag (gtag.js) - Google Analytics