问答详情
源自:2-4 IE事件处理程序及跨浏览器解决

IE11使用aattachEvent()没有效果?!

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>事件流</title>

</head>

<body>

<div id="box">

<input type="button" value="按钮" id="btn" onclick="showMessage()">

<input type="button" value="按钮2" id="btn2">

<input type="button" value="按钮3" id="btn3">

</div>

<script>

// HTML事件

function showMessage() {

alert("Hello world!");

}

// DOM0事件

var btn2 = document.getElementById('btn2');

var btn3 = document.getElementById('btn3');

//IE事件处理程序

btn3.attachEvent('onclick',showMessage);

//btn3.detachEvent('onclick',showMessage);

</script>

</body>

</html>



提问者:IHaveADreamD 2015-07-31 12:21

个回答

  • 慕码人2431995
    2021-01-28 13:22:51

    Add the 3rd param may helps.   


    `.addEventListener("unload", myHandler, true);`  


    It works on IE11 in my project.   


    e.g.  


    ```

    window.addEventListener('scroll', function (){ console.log(152) }, true);

    ```


  • FullStacker
    2015-07-31 14:01:41

    ie11已经删除 部分API 功能,其中就包括 `attachEvent`;

    原来的API      新的API
    attachEvent    addEventListener    
    window.execScript    eval    
    window.doScroll    window.scrollLeft、window.scrollTop    
    document.all    document.getElementById    
    document.fileSize、img.fileSize    使用 XMLHttpRequest 可提取源    
    script.onreadystatechange 和 script.readyState    script.onload    
    document.selection    window.getSelection    
    document.createStyleSheet    document.createElement("style")    
    style.styleSheet    style.sheet    
    window.createPopup    使用 div 或 iframe(zIndex 值很高)


  • Tracy_
    2015-07-31 14:00:57

    IE11下使用取消了.attachEvent;使用.addEventListener 

    IE7,8 可以用.attachEvent