700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Javascript Event事件中IE与标准DOM的比较【javascript】

Javascript Event事件中IE与标准DOM的比较【javascript】

时间:2023-04-09 09:22:57

相关推荐

Javascript Event事件中IE与标准DOM的比较【javascript】

web前端|js教程

Event事件,标准DOM

web前端-js教程

1.事件流的区别

仿大众点评源码,ubuntu16扩容,spark分析爬虫项目,php opensll,seo公司平台lzw

IE采用冒泡型事件 Netscape使用捕获型事件 DOM使用先捕获后冒泡型事件

示例:

小号网站源码,vscode怎样断点,radxa ubuntu,添加tomcat步骤,sqlite 读取行数据,dz 积分插件,前端框架先学什么软件,养爬虫宠物的人群,php 继续执行,绵阳seo推广公司,家电维修服务网站源代码(通用型),asp 网页编码,网站模板 站长之家lzw

冒泡型事件模型: button->div->body (IE事件流)

彩票投注系统源码,vscode 代码补齐,装完双系统开机ubuntu,tomcat 修改 无效,sqlite 最大字段,js去广告插件下载,前端前后端分离框架,爬虫python多个网站,php cms开源,seo课程设计,新闻网网站模板下载安装,网页qq临时会话,论坛模板下载jsp,wordpress 文章归档页面,jsp编写人力资源管理系统,带门户的社区程序lzw

捕获型事件模型: body->div->button (Netscape事件流)

DOM事件模型: body->div->button->button->div->body (先捕获后冒泡)

2.事件侦听函数的区别

IE使用:

[Object].attachEvent(“name_of_event_handler”, fnHandler); //绑定函数

[Object].detachEvent(“name_of_event_handler”, fnHandler); //移除绑定

DOM使用:

[Object].addEventListener(“name_of_event”, fnHandler, bCapture); //绑定函数

[Object].removeEventListener(“name_of_event”, fnHandler, bCapture); //移除绑定

bCapture参数用于设置事件绑定的阶段,true为捕获阶段,false为冒泡阶段。

示例代码:

function addEventHandler(object,eventType,fnHandler){

if(object.addEventListener){ //DOM

object.addEventListener(eventType, fnHandler, false);

}else if(object.attachEvent){ //IE

object.attachEvent("on"+eventType, fnHandler);

}else{ //others

object["on"+eventType]=fnHandler;

}

}

function removeEventHandler(object,eventType,fnHandler){

if(object.removeEventListener){ //DOM

object.removeEventListener(eventType, fnHandler, false);

}else if(object.detachEvent){ //IE

object.detachEvent("on"+eventType, fnHandler);

}else{ //others

object["on"+eventType]=null;

}

}

addEventHandler(oDiv,"click",function(){alert("clicked")});

3.事件对象定位(获取)

IE:事件对象是window对象的一个属性event,event只能在事件发生时访问,事件处理函数执行完毕,事件对象被销毁。

示例:

document.onclick=function(){

alert(window.event.type);

}

DOM:event对象必须作为唯一的参数传递给事件处理函数,且必须为第一个参数。

示例:

document.onclick=function(){

alert(arguments[0].type);

}

4.获取目标(target)

IE:var oTarget=oEvent.srcElement;

DOM:var oTarget=oEvent.target;

5.阻止事件默认行为

IE:oEvent.returnValue=false;

DOM:oEvent.preventDefault();

示例:

//屏蔽网页右键菜单

document.body.oncontextmenu=function(oEvent){

if(document.all){

oEvent=window.event;

oEvent.returnValue=false;

}else{

oEvent.preventDefault();

}

}

6.停止事件复制(冒泡)

IE:oEvent.cancelBubble=true;

DOM:oEvent.stopPropagation();

示例:

button.onclick=function(oEvent){

if(document.all){

oEvent=window.event;

oEvent.cancelBubble=true;

}else{

oEvent.stopPropagation();

}

}

附一个代码测试窗口:(感觉有些时候这种方式比alert()还好用)

div{ margin:0px auto;} #txt1{ font-size:14px; padding:2px 5px;} p{margin:0px auto; width:400px;}Javascript事件测试

Mouse HereClear

function handleEvent(oEvent){ var oTextbox=document.getElementById(“txt1″); oTextbox.value+=”>>>>”+oEvent.type+”\n”; //oTextbox.value+=”\n>>>>target is “+(oEvent.target||oEvent.srcElement).id; //oTextbox.value+=”\n>>>>at (“+oEvent.clientX+”,”+oEvent.clientY+”) in the client”; //oTextbox.value+=”\n>>>>at (“+oEvent.screenX+”,”+oEvent.screenY+”) on the screen”; //oTextbox.value+=”\n>>>>button down is”+oEvent.button; var arryKeys=[]; if(oEvent.shiftKey){ arryKeys.push(“Shift”); } if(oEvent.ctrlKey){ arryKeys.push(“Ctrl”); } if(oEvent.altKey){ arryKeys.push(“Alt”); } if(arryKeys.length>0){oTextbox.value+=”>>>>keys down are “+arryKeys+”\n”;} oTextbox.scrollTop=oTextbox.scrollHeight-oTextbox.offsetHeight; } function clear(){document.getElementById(“txt1″).value=””;}

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。