attachEvent與addEventListener的區別 真實例子


近日遇到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標准看齊。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM