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 相关文章推荐
cssQuery()的下载与使用方法
Jan 12 Javascript
加载jQuery后$冲突的解决办法
Jul 09 Javascript
js中array的sort()方法使用介绍
Feb 20 Javascript
javascript框架设计之类工厂
Jun 23 Javascript
React Native如何消除启动时白屏的方法
Aug 08 Javascript
微信小程序排坑指南详解
May 23 Javascript
学习使用ExpressJS 4.0中的新Router的用法
Nov 06 Javascript
微信小程序实现提交input信息到后台的方法示例
Jan 19 Javascript
Vue开发环境中修改端口号的实现方法
Aug 15 Javascript
基于JavaScript获取base64图片大小
Oct 18 Javascript
JS+CSS实现随机点名(实例代码)
Nov 04 Javascript
vue.js实现照片放大功能
Jun 23 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在XP下IIS和Apache2服务器上的安装
2006/09/05 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
php依赖注入知识点详解
2019/09/23 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
网站上面有这种切换效果
2006/06/26 Javascript
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
vue父子组件的数据传递示例
2017/03/07 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
基于jquery实现九宫格拼图小游戏
2018/11/30 jQuery
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
vue-router跳转时打开新页面的两种方法
2019/07/29 Javascript
vue+node 实现视频在线播放的实例代码
2020/10/19 Javascript
NodeJS配置CORS实现过程详解
2020/12/02 NodeJs
举例讲解如何在Python编程中进行迭代和遍历
2016/01/19 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
pyttsx3实现中文文字转语音的方法
2018/12/24 Python
Pytorch实现LSTM和GRU示例
2020/01/14 Python
python爬取音频下载的示例代码
2020/10/19 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
Python 里最强的地图绘制神器
2021/03/01 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
2020/08/24 HTML / CSS
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
火山动力Java笔试题
2014/06/26 面试题
感恩节活动方案
2014/01/27 职场文书
幼儿园家长评语
2014/02/10 职场文书
2014年群众路线教育实践活动整改措施
2014/09/24 职场文书
诉讼代理人授权委托书
2014/10/11 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
倡议书作文
2015/01/19 职场文书
家长意见书
2015/06/04 职场文书
贴吧吧主申请感言
2015/08/03 职场文书