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 相关文章推荐
WordPress 插件——CoolCode使用方法与下载
Jul 02 Javascript
js操作输入框中选择内容兼容IE及其他主流浏览器
Apr 22 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
Jun 20 Javascript
javascript二维数组转置实例
Jan 22 Javascript
详解jQuery中的empty、remove和detach
Apr 11 Javascript
jquery对dom节点的操作【推荐】
Apr 15 Javascript
JS模拟的Map类实现方法
Jun 17 Javascript
jQuery的deferred对象使用详解
Sep 25 Javascript
node.js express中app.param的用法详解
Jul 16 Javascript
浅谈对于react-thunk中间件的简单理解
May 01 Javascript
electron-vue开发环境内存泄漏问题汇总
Oct 10 Javascript
javascript将16进制的字符串转换为10进制整数hex
Mar 05 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 allow_url_include的应用和解释
2010/04/22 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
PHP将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
EXT中xtype的含义分析
2010/01/07 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
JS+Canvas绘制时钟效果
2020/08/20 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
浅析Vue中method与computed的区别
2018/03/06 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
2019/01/08 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
Python的__builtin__模块中的一些要点知识
2015/05/02 Python
python机器人行走步数问题的解决
2018/01/29 Python
对matplotlib改变colorbar位置和方向的方法详解
2018/12/13 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
python仿evething的文件搜索器实例代码
2019/05/13 Python
Python 把序列转换为元组的函数tuple方法
2019/06/27 Python
python 中关于pycharm选择运行环境的问题
2020/10/31 Python
浅谈Selenium+Webdriver 常用的元素定位方式
2021/01/13 Python
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
学院书画协会部门岗位职责
2013/12/01 职场文书
群众路线教育实践活动方案
2014/02/02 职场文书
个人委托书范本
2014/09/13 职场文书
销售顾问工作计划书
2014/09/15 职场文书
光棍节联谊晚会活动策划书
2014/10/10 职场文书
2014年统计工作总结
2014/11/21 职场文书
团员自我评价范文
2015/03/10 职场文书
《雪地里的小画家》教学反思
2016/02/16 职场文书
创业计划书之冷饮店
2019/09/27 职场文书
导游词之晋城蟒河
2019/12/12 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
Python list列表删除元素的4种方法
2021/11/01 Python
一文搞懂Java中的注解和反射
2022/06/21 Java/Android