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

在使用IE,attachEvent的时候会报错啊,求解答

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>事件流</title>

</head>

<body>

<div id="box">

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

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

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

<input type="button" value="按钮4/IE" id="btn4" />

<input type="button" value="按钮5/兼容" id="btn5" />

</div>

<script type="text/javascript">

function showMes(){

alert("hello world");

}

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

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

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

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

//DOM0级处理程序

btn2.onclick=function(){

alert('这是通过DOM0级添加的事件!');

}

btn2.onclick = null; //删除onclick属性

//DOM2级事件

/*btn3.addEventListener('click',showMes,false);

btn3.addEventListener('click',function(){

alert(this.value);

},false);*/

//btn3.removeEventListener('click',showMes,false);//删除事件处理程序

//IE事件处理程序

btn4.attachEvent('onclick',showMes);

</script>

</body>

</html>


报错信息:[Web浏览器] "Uncaught TypeError: undefined is not a function"

提问者:慕粉3404130 2016-09-10 21:06

个回答

  • 慕丝5304739
    2016-09-11 01:56:50
    已采纳

    IE11 添加、更改、删除了许多默认的传统功能:

     

    navigator.appName 属性现在会返回 "Netscape" 以反映 HTML5 标准和匹配其他浏览器的行为。

    navigator.product 属性现在会返回 "Gecko" 以便反映 HTML5 标准和匹配其他浏览器的行为。

    XDomainRequest 对象被 XMLHttpRequest 的 ORS 替换。

    已添加对 __proto__ 的支持。

    已添加 dataset 属性。

    另外,为了支持现行标准指定的功能,已删除若干传统 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 值很高)    

    二进制行为    变化;使用基于标准的等效,如 canvas、SVG 或 CSS3 动画    

    传统数据绑定    使用框架提供的数据绑定,如 WinJS    

     

     

  • 伴山客
    2017-12-13 08:27:10

    所以是attachEvent 已经被删除了嘛