(function(window) {
window.EventUtil ={
addEventHandler:function(element,type,handler){
if(element.addEventListener)
element.addEventListener(type,handler,false);
else if(element.attachHaattachEventdler)
element.attachEvent('on' + type,handler)
else
element['on' + type] = null;
},
removeEventHandler:function(element,type,handler){
if(element.removeEventListener)
element.removeEventListener(type,handler,false);
else if(element.detachEvent)
element.detachEvent('on' + type,handler)
else
element['on' + type] = null;
},
formatEvent:function(oEvent){
var isIE=/msie/i.test(navigator.userAgent),
isWin=/win/i.test(navigator.userAgent);
if(isIE && isWin){
oEvent.charCode=(oEvent.type == "keypress")?oEvent.keyCode:0;
oEvent.eventPhase =2;
oEvent.isChar=(oEvent.charCode>0);
oEvent.pageX=oEvent.clientX+document.body.scrollLeft;
oEvent.pageY=oEvent.clientY+document.body.scrollTop;
oEvent.preventDefault=function(){
this.returnvalue=false;
}
if(oEvent.type == "mouseout"){
oEvent.relateTarget=oEvent.toElement;
}else if(oEvent.type=="mouseover"){
oEvent.relatedTarget=oEvent.fromElement;
}
oEvent.stopPropagation=function(){
this.cancelBubble=true;
}
oEvent.target=oEvent.srcElement;
oEvent.time=(new Date()).getTime();
}
return oEvent;
},
getEvent: function(event){
if(event)
return EventUtil.getEvent.caller.arguments[0];
else
return this.formatEvent(window.event);
},
getTarget:function(event){
return event.target||event.srcElement;
},
preventDefault:function(event){
if(event.preventDefault)
event.preventDefault();
else
event.returnValue = false;
},
stopPropagation:function(event){
if(event.stopPropagation)
event.stopPropagation();
else
event.cancelBubble = true;
}
};
})(window);
分享到:
相关推荐
总结一下,JavaScript事件冒泡是浏览器中处理用户交互的重要机制,但它在不同浏览器间存在兼容性问题。通过使用DOM2级事件接口和编写兼容性代码,可以有效地管理这些差异,确保在各种浏览器环境下都能正确处理事件。...
本文将深入探讨如何在JavaScript中处理按键事件,并解决在IE和火狐浏览器上的兼容性问题。 首先,我们来了解JavaScript中的几个主要按键事件: 1. `keydown`:当用户按下键盘上的键时触发,可以重复触发,只要键...
JavaScript 操作键盘的 Enter 事件,兼容多浏览器 在 Web 开发中,JavaScript 操作键盘的 Enter 事件是一种常见的交互方式,例如,在登录页面中,按下 Enter 键 submitting 表单。在多浏览器环境下,实现这种交互...
JavaScript 为 DOM 绑定事件兼容 JavaScript 为 DOM 绑定事件是指在网页中将事件处理程序绑定到 HTML 元素上的过程,而为了实现跨浏览器兼容性,我们需要了解不同的浏览器对绑定事件的实现方式。 直接为 Element ...
本文将深入探讨JavaScript事件的捕获/冒泡阶段,DOM事件流,以及如何在实际应用中处理兼容性问题。 1. 事件捕获与冒泡阶段: - **事件捕获**:事件从最外层的document开始,向下逐级传递到最具体的元素(事件的...
在JavaScript和CSS的世界里,浏览器兼容性问题是一个长期困扰开发者的话题。不同的浏览器对标准的实现可能存在差异,导致代码在某些浏览器上运行正常,而在其他浏览器上可能出现错误或效果不一致。"js浏览器兼容问题...
### JS的兼容性问题详解 #### 一、概述 JavaScript(简称JS)作为现代Web开发不可或缺的一部分,在前端开发中占据着极其重要的位置。然而,由于不同的浏览器对于JS的支持程度和解释方式存在差异,这就导致了一个...
JavaScript 事件机制详细研究 ...JavaScript 事件机制是非常复杂的,它需要了解事件机制的实现方式、原理和浏览器的兼容性问题。只有深入了解这些知识点,才能编写出高效、可靠的 JavaScript 代码。
### 浏览器中JavaScript的兼容问题详解 #### 引言 随着Web技术的发展与进步,JavaScript(简称JS)已成为前端开发中不可或缺的一部分。然而,由于不同浏览器对JS的支持程度和解析方式存在差异,开发者在实际项目中...
综上所述,JavaScript在处理滚动条兼容性方面提供了多种方法和策略,包括使用CSS自定义Webkit内核的滚动条样式,通过事件监听滚动行为,以及借助第三方库实现更强大的自定义滚动条功能。在实际开发中,应根据项目...
本文将详细解析在Firefox浏览器中实现JS脚本兼容的一些关键点,以确保代码在Firefox和其他浏览器上的表现一致。 1. **window.event 兼容脚本** 在IE中,`window.event`可以直接获取当前事件对象,但在Firefox中则...
标题"jqprint打印js及兼容解决"表明我们将探讨如何使用`jqPrint`进行打印操作,并解决可能出现的JavaScript和jQuery的兼容性问题。 首先,`jqPrint`的主要功能是将选定的HTML元素转换为适合打印的格式。`jquery....
在创建一个兼容各种浏览器的JavaScript幻灯片时,我们需要考虑的关键知识点包括DOM操作、事件处理、CSS样式控制以及浏览器兼容性处理。 首先,DOM(Document Object Model)是HTML和XML文档的结构化表示,...
javaScript事件机制兼容(详细整理).doc
JS 键盘事件全面控制 兼容 FireFox 和 IE JS 键盘事件是指在网页中捕捉用户按键操作的事件,并对其进行相应的处理。JS 键盘事件可以分为三种类型:keydown、keypress 和 keyup,它们分别对应 onkeydown、onkeypress...
标题“js兼容es5-es6.rar”表明这是一个解决ES5和ES6兼容性问题的资源包,它提供了一种方式来使得ES6的新特性在不完全支持它们的浏览器中也能工作,特别是针对IE7和IE8这样的老版本。 描述中提到,“本方法支持大...
在本文中,我们首先介绍了JavaScript中处理...兼容不同浏览器的JavaScript代码编写是一个需要细致考虑兼容性的过程,开发者需要对不同浏览器的事件处理和DOM属性有所了解,以确保功能的正常实现和用户体验的一致性。
在"JS对话框兼容各浏览器尤其兼容ie6"这个主题中,我们将深入探讨如何使用JavaScript和jQuery来创建这样的弹出框,并确保在旧版IE浏览器中的良好表现。 首先,我们需要理解JavaScript的`window.alert()`, `window....
在JavaScript开发中,确保代码在不同的浏览器中具有良好兼容性是一项重要的任务。由于各个浏览器对JavaScript的支持程度和实现方式有所差异,所以需要采取特定的策略来处理这些差异,以确保代码在Internet Explorer...
在JavaScript中导入Excel文件,尤其是在兼容古老的Internet Explorer 11(IE11)浏览器时,需要考虑到这个浏览器并不支持现代的File API和其他先进的Web技术。本文将深入探讨如何实现这一功能,以及涉及到的关键知识...