JavaScript——DOM Level0和DOM Level2事件模型

事件处理是JavaScropt中近几年变化最大的部分,也是现有浏览器中仍然存在差异的主要方面之一。为了开发出能够跨浏览器兼容的事件处理程序,我们在编写程序时需要注意一些细节。

【DOM Level0】:又称传统事件处理——通过对象属性将一个函数值指定为事件处理程序的做法。任何对象只允许指定一个事件处理程序。DOM Level0时间分成两种阵营:NetScape(Firefox,Mozilla,Opera,Safari)和IE阵营,为了获得这两种类型浏览器都能兼容的网页时,需要注意以下对象以及对应的几个属性。

*Event对象——可以用来提供Event相关信息的属性

IE中将Event视作window对象属性,NetScape直接看做Event对象;用三元运算符来判断某个Event对象nsEvent是否已定义。

处理浏览器兼容方法:var theEvent=nsEvent ? nsEvent : window.event;

*Event的fromElement和relatedTarget属性(分别属于IE和Firefox)——通过鼠标事件获取鼠标从哪个对象移开(类似的还有aretoElement和currentTarget属性,用来获取鼠标移动到哪个对象)

处理浏览器兼容方法:var oldElement=theEvent.fromElement ? theEvent.fromElement : theEvent.relatedTarget;

*IE中的srcElement和Mozilla浏览器中的target属性——用来表示接收时间的对象

处理浏览器兼容方法:var theSrc=theEvent.target ? theEvent.target : theEvent.srcElement;

*IE中的cancelBubble和Mozilla之类的stopPropagation——则用于处理事件冒泡操作的关于浏览器兼容性的属性

处理浏览器兼容方法:fiunction stopEvent(theEvent)

{

if(theEvent.stopPropagation)

{

theEvent.stopPropagation();

}

else

{

theEvent.cancelBubble=true;

}

}

【DOM Level2】与老事件模型DOM Level0的主要区别在:1.新模型不依赖于特定的事件处理程序属性。2.可以对任何对象的任何一种事件注册多个事件处理程序函数。这里处理浏览器兼容性问题的主要来自:Mozilla之类的浏览器支持的三种对象方法:addEventListener,removeEventListener和dispatchEvent与IE浏览器支持的对象方法:attachEvent和detachEvent之间的区别。

*Mozilla类浏览器中添加一个事件监听器,其他类似

object.addEventListener("event",eventFunction,boolean);

参数一:click和load之类事件;参数二:指定的事件处理程序函数;参数三:指定事件捕获模型(true)和冒泡模型(false)。

*IE浏览器中添加一个事件监听器:

object.attachEvent("eventhandler",function);

参数一:事件处理程序;参数二:函数。

为了兼容上述的差异的处理方法:

function setup(theEvent)

{

var evtObject=document.getElementById("clickme");

if(evtObject.addEventListener){                                         //测试对象模型

evtObject.addEventListener("click",clickme,false);}

else if(evtObject.attachEvent){

evtObject.attachEvent("onclick",clickme);}

else if(evtObject.onclick){

evtObject.onclick=clickme;}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-29 09:20:09

JavaScript——DOM Level0和DOM Level2事件模型的相关文章

javascript的IE事件和DOM事件模型

通用的事件模型: 1.是在HTML页面绑定 <button id="button" onclick="function();">按钮</button> 2.在javascript脚本文件中绑定事件处理 document.getElementById('button').onclick = function; IE中的事件模型 1.使用script for绑定(这个绑定很少用) <script for="btn1" e

轻松学习JavaScript二十七:DOM编程学习之事件模型

在介绍事件模型之前,我们先来看什么是事件和什么是event对象. 一事件介绍 JavaScript事件是由訪问Web页面的用户引起的一系列操作,使我们有能力创建动态页面.事件是能够被 JavaScript侦測到的行为. 网页中的每一个元素都能够产生某些能够触发JavaScript函数的事件.例如说.我们能够在用 户点击某button时产生一个onclick事件来触发某个函数.事件在HTML页面中定义:事件通常与函数配合使用,当事件 发生时函数才会运行:事件一般用于浏览器和用户操作进行交互. 我们

仅用原生JavaScript手写DOM事件模型

前言 前段时间博客园里有篇很火的帖子2016十家公司前端面试小记,主要讲作者的前端求职面试经历,其中提到了面试官会考察手写一个简单的事件模型: "如果上述都ok的话,那么极有可能要求让你[实现事件模型],即写一个类或是一个模块,有两个函数,一个bind一个trigger,分别实现绑定事件和触发事件,核心需求就是可以对某一个事件名称绑定多个事件响应函数,然后触发这个事件名称时,依次按绑定顺序触发相应的响应函数." 如果了解观察者模式,那么事件模型应该不算太难.本着深入钻研的精神,我试着来

【javascript总结】javascript的IE事件和DOM事件模型

通用的事件模型 1.是在HTML页面绑定 <button id="button" onclick="function();">按钮</button> 2.在javascript脚本文件中绑定事件处理 document.getElementById('button').onclick = function; IE中的事件模型 1.使用script for绑定(这个绑定很少用) <script for="btn1" ev

DOM事件模型学习笔记

下面的内容属于阅读笔记,其中涉及大量内容来自于PPK的博客的内容,如果你要跟随我的脚步领略大家风采,那么就从Introduction to Events开始阅读吧. 现代的前端开发应该是会严格遵守 html 展示文档内容构成,css 渲染页面效果,javascript 提供交互 浏览器提供交互行为可以追溯到Netscape公司在其第二个版本中支持javascript语言,随后其与微软之间的浏览器大战,以及w3c标准制定的落后,导致至今一直被诟病的浏览器兼容问题,而这些不兼容中关于DOM事件模型的

js中的Dom事件模型以及表格方面等内容

1.实现评论页面的制作 <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #outside{ width: 1000px; margin: 0 auto; border: 1px solid #E7EAEE; overflow: hidden; pad

【JS】DOM事件模型

DOM事件模型主要包含4个方面的内容,分别是: 事件流 主流浏览器的事件模型 事件对象 注册与移除事件监听器 下面一一了解下: 首先,什么是DOM?文档对象模型(DOM)是表示文档(比如HTML和XML)和访问.操作构成文档的各种元素的应用程序接口(API).一般的,支持Javascript的所有浏览器都支持DOM. 在DOM眼中,HTML跟XML一样是一种树形结构的文档,<html>是根(root)节点,<head>.<title>.<body>是<

JS的三种使用方式/CSS的三种使用方式/JS中的DOM事件模型/JS中匿名函数的书写及调用/媒体查询@media的三种使用方式

一.JS的三种使用方式 1.html标签中内嵌JS(不提倡使用.)                <button onclick="javascript:alert('你真点啊.')" > 有本事点我呀!!!!</button>                                2.HTML页面中直接使用JS:                <script type="text/javascript">        

DOM事件模型

DOM 首先,DOM全称是Document Object Model,即文档对象模型.DOM是W3C的标准,定义了访问 HTML 和 XML 文档的标准. “W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容.结构和样式.” DOM事件 DOM使Javascript有能力对HTML上的事件做出反应.这些事件包括鼠标键盘的点击事件.移动事件以及页面中内容的变化等.HTML元素事件是浏览器内在自动产生的,当有事件发生时html元素会向外界(这里主要