<!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"
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
所以是attachEvent 已经被删除了嘛