Obtaining non-inline style compatibility mode
the getStyle function (obj, attr) { // Get non-line style, obj is the object, attr is a value IF (obj.currentStyle) { // for obtaining non-line style ie return obj.currentStyle [attr]; } the else { return the getComputedStyle (obj, to false ) [attr]; // for non IE } }
Gets the event object compatibility mode
document.onclick=function(eve){ var e=eve||window.event; console.log(e); }
Event bubbling compatible method
function stopBubble(e){ if(e.stopPropagation){ e.stopPropagation(); }else{ e.cancelBubble = true;//兼容ie } }
Prevent the browser's default behavior of compatible method
if( e.preventDefault ){ e.preventDefault(); }else{ window.event.returnValue = false;//ie }
Setting and removing event listeners compatibility mode
1.封装成对象的方式 var EventUtil={ addHandler:function(DOM,EventType,fn){ if(DOM.addEventListener){ DOM.addEventListener(EventType,fn,false); }else if(DOM.attachEvent){ DOM.attachEvent('on'+EventType,fn) }else{ DOM['on'+EventType]=fn } }, removeHandler:function(DOM,EventType,fn){ if(DOM.removeEventListener){ DOM.removeEventListener(EventType,fn,false) }else if(DOM.detachEvent){ DOM.detachEvent('on'+EventType,fn) }else{ DOM['on'+EventType]=null; } } } 2.封装成两个函数的方式 function addEvent(obj,inci,back){ if(obj.addEventListener){ obj.addEventListener(inci,back); }else if(obj.attachEvent){ obj.attachEvent("on" + inci,back); }else{ obj["on"+inci] = back; } } function removeEvent(obj,inci,back){ if(obj.removeEventListener){ obj.removeEventListener(inci,back,false); }else if(obj.detachEvent){ obj.detachEvent("on" + inci,back); }else{ obj["on"+inci] = null; } }
The event delegate methods compatible
var oul = document.querySelector("ul") oul.onclick = function(eve){ var e = eve || window.event; var t = e.target || e.srcElement; if(t.getAttribute("abc") == "l"){ console.log(e.target.innerHTML) } }
The method is compatible keyboard events
var eve = eve||window.event; var keyC = eve.keyCode||eve.which;
The above is a summary I met in the course of several learning js compatibility mode, if there is an error where we want to point out, thank you.