attachEvent与addEventListener的区别 真实例子

本文通过实际测试对比了attachEvent与addEventListener两种事件处理方式在不同浏览器中的兼容性表现。attachEvent主要兼容IE7和IE8,而addEventListener则广泛应用于现代浏览器如Firefox、Chrome等。

转自:https://www.cnblogs.com/Rosefxd/p/4921330.html

近日遇到attachEvent与addEventListener两个事件,哟,果断研究一下~~

先普及一下基本知识:

attachEvent与addEventListener的作用:为某一事件附加其它的处理事件。

 

网上普遍都是说attachEvent用于非Mozilla系列,addEventListener用于Mozilla系列。

(Mozilla系列在浏览器而言,即指火狐浏览器,本人认为也可以指支持w3c标准的系列浏览器)

理论上是这么说,还是得自己动手试一试!

结合查阅资料写了以下代码进行测试:

复制代码
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>attachEvent与addEventListener区别</title>
    <style type="text/css">

    </style>
</head>

<body>
    <button id="btn1">点我</button>

</body>
<script type="text/javascript">
    var btn1Obj = document.getElementById("btn1");

    function method1(){
        alert("method1");
    }
    function method2(){
        alert("method2");
    }
    function method3(){
        alert("method3");
    }
    function attachEventListen(obj,e,fun){
        /*obj.attachEvent ? obj.attachEvent("on"+e,fun) : obj.addEventListener(e,fun,false);*/
        obj.attachEvent("on"+e,fun);//测试浏览器,发现:firefox、chrome、IE9、IE10、IE11、safari、opera都不兼容,IE7、IE8兼容,
        //obj.addEventListener(e,fun,false);//测试浏览器,发现:firefox、chrome、IE、safari、opera都兼容,IE7、IE8不兼容,

    }

    attachEventListen(btn1Obj,"click",method1);
    attachEventListen(btn1Obj,"click",method2);
    attachEventListen(btn1Obj,"click",method3);

</script>
</html>
复制代码

 

运行结果注释在了上面代码中。(只测试了主流浏览器:IE7-11、firefox、chrome、opera、safari)

总结起来就是:

attachEvent——兼容:IE7、IE8;不兼容firefox、chrome、IE9、IE10、IE11、safari、opera

addEventListener——兼容:firefox、chrome、IE、safari、opera;不兼容IE7、IE8

 

由此也可以看出,从IE9开始,很多JS也已经按照W3c的标准;其他主流浏览器也在向W3c标准看齐。

转载于:https://www.cnblogs.com/sharpest/p/6476784.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值