JavaScript让IE浏览器event对象符合W3C DOM标准


Posted in Javascript onNovember 24, 2009
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>无标题文档</title> 
</head> 
<body> 
<input id="butt" type="button" value="提交" /> 
</body> 
<script type="text/javascript"> 
var EventUtil = {}; 
EventUtil.formatEvent = function(oEvent){ 
if(window.ActiveXObject){ 
//W3C event的charCode属性,按下的按键的Unicode值 
oEvent.charCode = (oEvent.type == 'keypress') ? oEvent.keyCode : 0; 
//W3C event的eventPhase属性 
//事件的阶段,可能有以下的值中的一个: 
// 0 - 捕获阶段 
// 1 - 在目标上 
// 2 - 冒泡阶段 
oEvent.eventPhase = 2; 
//W3C event的isChar属性,表示按下的按键是否有字符与之相关 
oEvent.isChar = (EventUtil.charCode > 0); 
//W3C event的pageX属性,鼠标相对于页面的X坐标 
oEvent.pageX = oEvent.clientX + document.body.scrollLeft; 
//W3C event的pageY属性,鼠标相对于页面的Y坐标 
oEvent.pageY = oEvent.clientY + document.body.scrollTop; 
//W3C event的preventDefault方法,阻止事件的默认行为 
oEvent.preventDefault = function(){ 
this.returnValue = false; 
}; 
//W3C event的relatedTarget属性,事件的第二目标,经常用于鼠标事件 
if(oEvent.type == 'mouseout'){ 
oEvent.relatedTarget = oEvent.toElement; 
}else if(oEvent.type == 'mouseover'){ 
oEvent.relatedTarget = oEvent.fromElement; 
} 
//W3C event的stopPropagation方法,取消冒泡事件 
oEvent.stopPropagation = function(){ 
this.cancelBubble = true; 
}; 
//W3C event的target属性 
oEvent.target = oEvent.srcElement; 
//W3C event的timestamp属性,创建当前时间,并返回毫秒数 
oEvent.time = (new Date()).getTime(); 
} 
return oEvent; 
}; 
EventUtil.getEvent = function(){ 
if(window.event){ 
// IE 下返回event对象 
return this.formatEvent(window.event); 
}else{ 
// W3C 下返回event对象 
return EventUtil.getEvent.caller.arguments[0]; 
} 
}; 
document.getElementById('butt').onclick = function(){ 
var oEvent = EventUtil.getEvent(); 
alert(oEvent); 
}; 
</script> 
</html>
Javascript 相关文章推荐
javascript实现的鼠标链接提示效果生成器代码
Jun 28 Javascript
node.js中的path.extname方法使用说明
Dec 09 Javascript
JavaScript不使用prototype和new实现继承机制
Dec 29 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
Sep 04 Javascript
实例解析angularjs的filter过滤器
Dec 14 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
Apr 25 Javascript
Vue修改mint-ui默认样式的方法
Feb 03 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
Dec 07 Javascript
jQuery实现的隔行变色功能【案例】
Feb 18 jQuery
详解Vue的watch中的immediate与watch是什么意思
Dec 30 Javascript
微信小程序实现拨打电话功能的示例代码
Jun 28 Javascript
如何用JavaScript检测当前浏览器是无头浏览器
Apr 27 Javascript
文本框的字数限制功能jquery插件
Nov 24 #Javascript
js数字输入框(包括最大值最小值限制和四舍五入)
Nov 24 #Javascript
jquery ajax提交表单数据的两种方式
Nov 24 #Javascript
js loading加载效果实现代码
Nov 24 #Javascript
jquery.ui.draggable中文文档
Nov 24 #Javascript
JS 实现双色表格实现代码
Nov 24 #Javascript
JavaScript 利用StringBuffer类提升+=拼接字符串效率
Nov 24 #Javascript
You might like
PHP中使用正则表达式提取中文实现笔记
2015/01/20 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
php+mysql实现无限级分类
2015/11/11 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
php用户密码加密算法分析【Discuz加密算法】
2016/10/12 PHP
List all the Databases on a SQL Server
2007/06/21 Javascript
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
javascript简单事件处理和with用法介绍
2013/09/16 Javascript
使用js判断TextBox控件值改变然后出发事件
2014/03/07 Javascript
JS根据年月获得当月天数的实现代码
2014/07/03 Javascript
JavaScript函数详解
2014/11/17 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
web前端开发JQuery常用实例代码片段(50个)
2015/08/28 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
你不知道的SpringBoot与Vue部署解决方案
2020/11/09 Javascript
Python实现基于POS算法的区块链
2018/08/07 Python
windows环境中利用celery实现简单任务队列过程解析
2019/11/29 Python
Django实现从数据库中获取到的数据转换为dict
2020/03/27 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
机电专业大学生求职信
2013/10/04 职场文书
法务专员岗位职责
2014/01/02 职场文书
大学生求职简历自我评价
2015/03/02 职场文书
2015年党员岗位承诺书
2015/04/27 职场文书
《圆明园的毁灭》教学反思
2016/02/16 职场文书
六种css3实现的边框过渡效果
2021/04/22 HTML / CSS
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers