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的几种方法小结
Apr 25 Javascript
微信分享的标题、缩略图、连接及描述设置方法
Oct 14 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
Aug 14 Javascript
jquery实现的V字形显示效果代码
Oct 27 Javascript
jQuery通过写入cookie实现更换网页背景的方法
Apr 15 Javascript
AngularJS开发教程之控制器之间的通信方法分析
Dec 25 Javascript
Angular自定义组件实现数据双向数据绑定的实例
Dec 11 Javascript
element-ui中select组件绑定值改变,触发change事件方法
Aug 24 Javascript
JS原生瀑布流效果实现
Apr 26 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
Aug 26 Javascript
vue 如何使用递归组件
Oct 23 Javascript
JS canvas实现画板和签字板功能
Feb 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 程序员应该使用的10个组件
2009/10/31 PHP
PHP实现获取并生成数据库字典的方法
2016/05/04 PHP
PHP用户验证和标签推荐的简单使用
2016/10/31 PHP
php字符串过滤strip_tags()函数用法实例分析
2019/06/24 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
Laravel 框架返回状态拦截代码
2019/10/18 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
再谈javascript面向对象编程
2012/03/18 Javascript
jquery validate poshytip 自定义样式
2012/11/26 Javascript
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
js实现省市联动效果的简单实例
2014/02/10 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
Vue登录注册并保持登录状态的方法
2018/08/17 Javascript
Nuxt页面级缓存的实现
2020/03/09 Javascript
Python封装shell命令实例分析
2015/05/05 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
NumPy中的维度Axis详解
2019/11/26 Python
Python 制作查询商品历史价格的小工具
2020/10/20 Python
Python下载的11种姿势(小结)
2020/11/18 Python
python 使用csv模块读写csv格式文件的示例
2020/12/02 Python
python中str内置函数用法总结
2020/12/27 Python
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
iframe在移动端的缩放的示例代码
2018/10/12 HTML / CSS
约瑟夫·特纳男装:Joseph Turner
2017/10/10 全球购物
戴尔英国翻新电脑和电子产品:Dell UK Refurbished Computers
2019/07/30 全球购物
澳大利亚购买太阳镜和眼镜网站:Glamoureyes
2020/09/22 全球购物
颁奖典礼主持词
2014/03/25 职场文书
师德师风演讲稿
2014/05/05 职场文书
检讨书范文1000字
2015/01/28 职场文书
面试通知单大全
2015/04/20 职场文书
2015年化妆品销售工作总结
2015/05/11 职场文书
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis