Event事件跨浏览器封装

 1 var Event = {
 2         //注册事件
 3         addEvent: function(element,type,handler){
 4             if(element.addEventListener){  //DOM2级
 5                 element.addEventListener(type,handler,false); //false为冒泡,true为捕获
 6             }else if(element.attachEvent){  //IE
 7                 element.attachEvent("on"+type,function(){  //默认皆为冒泡
 8                     handler.call(element);
 9                 });
10             }else{
11                 element["on"+type] = handler; //DOM0级
12             }
13         },
14         //取消事件
15         removeEvent: function(element,type,handler){
16             if(element.removeEventListener){
17                 element.removeEventListener(type,handler,false);
18             }else if(element.detachEvent){
19                 element.detachEvent("on"+type,handler);
20             }else{
21                 element["on"+type] = null;
22             }
23         },
24         //防止冒泡行为
25         stopPropagation: function(event){
26             if(event.stopPropagation){ //非IE
27                 event.stopPropagation();
28             }else{  //IE
29                 event.cancleBubble = true;
30             }
31         },
32         //阻止默认行为 如<a>的默认链接行为
33         preventDefault: function(event){
34             if(event.preventDefault){  //
35                 event.preventDefault();
36             }else{  //IE
37                 event.returnValue = true;
38             }
39         },
40         //获取事件对象
41         getEvent: function(event){
42             return event || window.event;  //FF通过传过来的参数event使用,IE通过window.event取用
43         },
44         //获取触发事件的目标源
45         getTarget: function(event){
46             return event.target || event.srcElement;  //后者为了兼容IE
47         }
48     };
时间: 2024-08-09 14:17:22

Event事件跨浏览器封装的相关文章

Event对象跨浏览器兼容性写法

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

处理一些常见的跨浏览器封装的函数

//跨浏览器获取视口大小 function getInner(){ if(typeof window.innerWidth!='undefined'){ return{ width:window.innerWidth, height:window.innerHeight } }else{ return{ width:document.documentElement.clientWidth, height:document.documentElement.clientHeight } }} //跨

js事件跨浏览器解决问题的学习与总结

//定义一个EventUtil对象 var EventUtil = {  //兼容浏览器注册事件处理程序 addHandler: function(element, type, handler){  // 该方法接受3个参数:要操作的元素,事件名称和事件处理程序函数  if (element.addEventListener){ //检查传入的元素是否存在DOM2级方法  element.addEventListener(type, handler, false); // 若存在,则使用该方法 

js事件跨浏览器处理方案

js跨浏览器事件工具: //事件工具对象 var EventUtil = {}; //添加事件 EventUtil.addEvent = function(element,type,handle) { if(element.addEventListener) { //dom事件 element.addEventListener(type,handle,false); } else if(element.attachEvent) { element.attachEvent("on" +

JS-DOM2级事件对象跨浏览器处理(已封装)

1 var eventUill = { 2 //添加事件 3 addHander: function(element, type, handler) { 4 if(element.addEventListener) { 5 element.addEventListener(type, handler, false); 6 } else if(element.attachEvent) { 7 element.attachEvent('on' + type, handler); 8 } else {

跨浏览器 HTML5 postMessage 方法以及 message 事件模拟实现

postMessage 是 HTML5 新方法,它可以实现跨域窗口之间通讯.到目前为止,只有 IE8+, Firefox 3, Opera 9, Chrome 3和 Safari 4 支持,而本篇文章主要讲述 postMessage 方法与 message 事件跨浏览器实现. postMessage 方法 JSONP 技术不一样,前者是前端擅长跨域文档数据即时通讯,后者擅长针对跨域服务端数据通讯,postMessage 应用场景能说明这个区别: 应用场景举例 webOS 使用 iframe 嵌入

EventUtil——跨浏览器的事件对象

前言:什么是EventUtil? 在JavaScript中,DOM0级.DOM2级与旧版本IE(8-)为对象添加事件的方法不同 为了以跨浏览器的方式处理事件,需要编写一段“通用代码”,即跨浏览器的事件处理程序 习惯上,这个方法属于一个名为EventUtil的对象 编写并使用该对象后,可保证处理事件的代码能在大多数浏览器下一致的运行 本文将围绕着EventUtil对象展开,并提供该通用对象代码以作参考分享 文章主要内容参考书籍为<JavaScript高级程序设计>([美]Nicholas C.Z

通用事件对象(跨浏览器)

var EventUtil = { addHander: function(element, type, handler) { if (element.addEventListener) { element.addEventListener(type, handler, false) } else if (element.attchEvent) { element.attchEvent('on' + type, handler) } else { element['on' + type] = h

跨浏览器【事件处理程序】和【事件对象】

和require.js没关系,只是最近看了拿来练练手~~ 1.html(引用require.js模块) <!DOCTYPE html> <html> <head> <style type="text/css"> #div{ background-color: yellow; width:200px; height:200px; opacity: 0.5; } #a{ display: block; background-color: gr