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 序列化对象实现代码
Dec 18 Javascript
IE8 chrome中table隔行换色解决办法
Jul 09 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
Sep 15 Javascript
jQuery-onload让第一次页面加载时图片是淡入方式显示
May 23 Javascript
固定背景实现的背景滚动特效示例分享
May 19 Javascript
jQuery常用数据处理方法小结
Feb 20 Javascript
了解ESlint和其相关操作小结
May 21 Javascript
jQuery时间戳和日期相互转换操作示例
Dec 07 jQuery
Node.js安装详细步骤教程(Windows版)详解
Sep 01 Javascript
js面向对象之实现淘宝放大镜
Jan 15 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
Oct 22 Javascript
js前端传json后台接收‘‘被转为quot的问题解决
Nov 12 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实现选择排序的解决方法
2013/05/04 PHP
百度地图API使用方法详解
2015/08/25 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
javascript 防止刷新,后退,关闭
2010/08/07 Javascript
JavaScript获取页面中表单(form)数量的方法
2015/04/03 Javascript
jquery ajax 如何向jsp提交表单数据
2015/08/23 Javascript
自己动手写的javascript前端等待控件
2015/10/30 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
javascript实现一个网页加载进度loading
2017/01/04 Javascript
Bootstrap实现提示框和弹出框效果
2017/01/11 Javascript
javascript计算渐变颜色的实例
2017/09/22 Javascript
Vue实现根据hash高亮选项卡
2019/05/27 Javascript
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
python基础教程之Hello World!
2014/08/29 Python
python实现图片变亮或者变暗的方法
2015/06/01 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
Django中的ajax请求
2018/10/19 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
python使用sessions模拟登录淘宝的方式
2019/08/16 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
Flask中sqlalchemy模块的实例用法
2020/08/02 Python
python+django+selenium搭建简易自动化测试
2020/08/19 Python
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
企业内部培训方案
2014/02/04 职场文书
银行职员个人的工作自我评价
2014/02/15 职场文书
教师考核评语
2014/04/28 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
上课睡觉万能检讨书
2015/02/17 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
民事撤诉申请书范本
2015/05/18 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技