- var eventshiv = { 
-  // event兼容  
- getEvent: function(event)  
- {return event ? event : window.event;  
- }, 
-  // type兼容  
- getType: function(event) { 
- return event.type;  
- },  
-  // target兼容  
- getTarget: function(event) { 
- return event.target ? event.target : event.srcelem;  
- },  
-  // 添加事件句柄  
- addHandler: function(elem, type, listener) { 
- if (elem.addEventListener) {  
- elem.addEventListener(type, listener, false);  
- }  
- else if (elem.attachEvent) { 
-  elem.attachEvent('on' + type, listener);  
- }  
- else {  
- // 在这里由于.与'on'字符串不能链接,只能用 []  
- elem['on' + type] = listener; 
-  } 
-  }, 
-  // 移除事件句柄  
- removeHandler: function(elem, type, listener) { 
- if (elem.removeEventListener) {  
- elem.removeEventListener(type, listener, false);  
- }  
- else if (elem.detachEvent) { 
-  elem.detachEvent('on' + type, listener);  
- }  
- else {  
- elem['on' + type] = null; 
-  }  
- },  
-  // 添加事件代理  
- addAgent: function (elem, type, agent, listener) {  
- elem.addEventListener(type, function (e) { 
- if (e.target.matches(agent)) { 
-  listener.call(e.target, e); // this 指向 e.target  
- } 
- }); 
-  },  
-  // 取消默认行为  
- preventDefault: function(event) { 
- if (event.preventDefault) {  
- event.preventDefault();
}  
- else {  
- event.returnValue = false;  
- }  
- },  
-  // 阻止事件冒泡  
- stopPropagation: function(event) { 
- if (event.stopPropagation) {  
- event.stopPropagation();  
- } 
-  else {  
- event.cancelBubble = true;  
- }  
- }  
- };