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 相关文章推荐
浮动的div自适应居中显示的js代码
Dec 23 Javascript
利用Keydown事件阻止用户输入实现代码
Mar 11 Javascript
JS实现图片产生波纹一样flash效果的方法
Feb 27 Javascript
深入浅出理解javaScript原型链
May 09 Javascript
jQuery实现定时读取分析xml文件的方法
Jul 16 Javascript
Javascript实现的简单右键菜单类
Sep 23 Javascript
js简单时间比较的方法
Aug 02 Javascript
微信小程序调用PHP后台接口 解析纯html文本
Jun 13 Javascript
vue动态绑定组件子父组件多表单验证功能的实现代码
May 14 Javascript
基于axios 解决跨域cookie丢失的问题
Sep 26 Javascript
JavaScript实现预览本地上传图片功能完整示例
Mar 08 Javascript
vue导航栏部分的动态渲染实例
Nov 01 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
基于Discuz security.inc.php代码的深入分析
2013/06/03 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
Codeigniter的一些优秀特性总结
2015/01/21 PHP
PHP中COOKIES使用示例
2015/07/26 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
prototype 1.5 &amp; scriptaculous 1.6.1 学习笔记
2006/09/07 Javascript
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
javascript跨域刷新实现代码
2011/01/01 Javascript
JS替换字符串中字符即替换全部而不是第一个
2014/06/04 Javascript
JavaScript中匿名函数用法实例
2015/03/23 Javascript
jquery专业的导航菜单特效代码分享
2015/08/29 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
2016/10/24 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
2017/07/20 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
vue使用vue-i18n实现国际化的实现代码
2018/04/08 Javascript
vue组件中的数据传递方法
2018/05/14 Javascript
Python中的filter()函数的用法
2015/04/27 Python
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
实现python版本的按任意键继续/退出
2016/09/26 Python
老生常谈python之鸭子类和多态
2017/06/13 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
2019/08/20 Python
高中历史教学反思
2014/02/08 职场文书
对外汉语专业大学生职业生涯规划范文
2014/09/13 职场文书
党员转正党支部意见
2015/06/02 职场文书
庆元旦主持词
2015/07/06 职场文书
python实现Thrift服务端的方法
2021/04/20 Python
Apache POI的基本使用详解
2021/11/07 Servers
正则表达式拆分url实例代码
2022/02/24 Java/Android
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers