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 相关文章推荐
js之WEB开发调试利器:Firebug 下载
Jan 13 Javascript
JavaScript 笔记二 Array和Date对象方法
May 22 Javascript
基于JQuery的一句代码实现表格的简单筛选
Jul 26 Javascript
THREE.JS入门教程(5)你应当知道的十件事
Jan 24 Javascript
jquery删除指定的html标签并保留标签内文本内容的方法
Apr 02 Javascript
Node.js插件的正确编写方式
Aug 03 Javascript
JavaScript对象学习小结
Sep 02 Javascript
详解微信小程序 页面跳转 传递参数
Dec 08 Javascript
ES6扩展运算符用法实例分析
Oct 31 Javascript
详解bootstrap导航栏.nav与.navbar区别
Nov 23 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
Mar 12 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
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 VS ASP
2006/10/09 PHP
通过具体程序来理解PHP里面的抽象类
2010/01/28 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
php使用str_replace实现输入框回车替换br的方法
2014/11/24 PHP
详解php中反射的应用
2016/03/15 PHP
在javascript中对于DOM的加强
2013/04/11 Javascript
chrome下jq width()方法取值为0的解决方法
2014/05/26 Javascript
JavaScript模块随意拖动示例代码
2014/05/27 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
2014/08/18 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
jQuery原理系列-css选择器的简单实现
2016/06/07 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
angular-cli修改端口号【angular2】
2017/04/19 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
webpack+react+antd脚手架优化的方法
2018/04/02 Javascript
Vue中的混入的使用(vue mixins)
2018/06/01 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
Vue项目引进ElementUI组件的方法
2018/11/11 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
Python使用Flask框架获取当前查询参数的方法
2015/03/21 Python
浅析Python的web.py框架中url的设定方法
2016/07/11 Python
Python Pandas 如何shuffle(打乱)数据
2019/07/30 Python
python使用多线程查询数据库的实现示例
2020/08/17 Python
python如何爬取动态网站
2020/09/09 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
计算机开发个人求职信范文
2013/09/26 职场文书
博士学位自我鉴定范文
2013/12/26 职场文书
超市总经理岗位职责
2014/02/02 职场文书
《小熊住山洞》教学反思
2014/02/21 职场文书
《月亮湾》教学反思
2014/04/14 职场文书
社区服务标语
2014/07/01 职场文书
大学课外活动总结
2014/07/09 职场文书
2015年七一建党节活动总结
2015/03/20 职场文书