1,获取非行内样式的兼容
function getStyle(cssObj,attr){
if(cssObj.currentStyle){
return cssObj.currentStyle[attr];//针对ie浏览器获取非行间样式
}else{
return getComputedStyle(cssObj,false)[attr];//针对非ie浏览器获取非行间样式
};
}
2,事件对象的兼容问题
function fn(eve){
var e = eve || window.event;
}
3,事件冒泡的兼容问题
function stopBubbles(e){
if(e.stopPropagation){
//针对非ie浏览器
e.stopPropagation();
}else{
//针对ie浏览器
e.cancelBubbles = true;
}
}
4,浏览器默认行为的兼容问题
if( e.preventDefault ){
//针对非ie浏览器
e.preventDefault();
}else{
//针对ie浏览器
window.event.returnValue = false;
}
5,事件委托的兼容问题
dom.onclick = function(eve){
var e = eve || window.event;
var target = e.target || e.srcElement;
if(target.nodeName == "LI"){
console.log(target.innerHTML);
}
}
6,事件绑定方式的兼容问题
function addEvent(ele,type,back){
if(ele.addEventListener){
//监听式:其他浏览器
ele.addEventListener(type,back)
}else if(ele.attachEvent){
//监听式:IE浏览器
ele.attachEvent("on"+type,back)
else{
//赋值式
ele["on"+type] = back;
}
}
7,删除事件绑定的兼容问题
function removeEvent(ele,type,back){
if(ele.removeEventListener){
//监听式:其他浏览器
ele.removeEventListener(type,back,false);
}else if(ele.detachEvent){
//监听式:IE浏览器
ele.detachEvent("on" + type,back);
}else{
//赋值式
ele["on"+type] = null;
}
}
8,键盘事件获取的兼容问题
function code(eve){
var e=eve||window.event;
var code=e.keyCode||e.which;
}
原文:https://www.cnblogs.com/tongmeng/p/11780957.html