js各类浏览器兼容问题

IE低版本浏览器和其他浏览器一般都不一样,为了实现兼容,可以采用以下的方法:
 var myDiv = document.getElementById("ID");

/*针对不同的浏览器采用不同的方法*/
if(myDiv.currentStyle){ /*用于区分是什么类型的浏览器 IE*/
var outStyle = myDiv.currentStyle;
console.log(outStyle.left);
}else{ /*用于其他类型的浏览器*/
var outStyle = window.getComputedStyle(myDiv,null);
console.log(outStyle.left);
}

 

/*为元素添加事件监听   兼容各种浏览器*/
if(div.attachEvent){  //ie浏览器
    div.attachEvent("onclick",show);
}else{
    div.addEventListener("click",show,false);
}

/*同样的道理   为元素移除事件监听   兼容各种浏览器*/
if(div.detachEvent){
    div.detachEvent("onclick",show);
}else{
    div.removeEventListener("click",show,false);
}
 
当一个父级容器(如div)中包含有几个子集容器(div)时,任意点击一个容器(div),都会触发其他容器的事件。为了解决这类问题,示例如下:
//false  事件冒泡(从子元素到父元素)  true:事件捕获(从父元素到子元素)
div1.addEventListener("click",showConsole1,false);
 function showConsole1(e){
        e = e || window.event;
//        事件冒泡的处理  阻止事件冒泡
        if(e.stopPropagation){
            e.stopPropagation();  //非ie
        }else{
            e.cancelBubble = true;
        }

        console.log("div1");
    }
 
<a href="https://www.baidu.com/" οnclick="showBaiDu(event)">众里寻他千百度</a>
/*三:取消默认事件*/
function showBaiDu(e){
    if(e.preventDefault){   /*非IE浏览器*/
        e.preventDefault();
    }else{                   /*IE浏览器*/
        e.returnValue = false;
    }
    console.log("不跳转!");
}

转载于:https://www.cnblogs.com/sunshine-my/p/6618883.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值