当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JavaScript让IE浏览器event对象符合W3C DOM标准

Javascript
javascript 关闭IE6、IE7
javascript substr和substring用法比较
javascript 强制弹出窗口代码-跨拦截
javascript 获取多条数据(模拟ajax获取数据)
js 分页代码带切换效果
选择指定数量后checkbox不可选(变灰)javascript代码
javascript 图片上传预览-兼容标准
jquery 截取字符串的实现
jquery tagname 取得方法
scrollTop 用法说明
javascript 倒排序方法
慎用 somefunction.prototype 分析
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
javascript 根据歌名获取播放地址和歌词内容
js在Firefox与IE中对DOM对像的引用的比较
Javascript String对象扩展HTML编码和解码的方法
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
Javascript 获取字符串字节数的多种方法
javascript 常用方法总结
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失

Javascript 中的 JavaScript让IE浏览器event对象符合W3C DOM标准


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 338 ::
收藏到网摘: n/a

IE浏览器event对象跟W3C实现的不一样.所以自己封装一个EventUtil类来让IE浏览器的event对象与W3C一样.
复制代码 代码如下:

<!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>