DOM Level 0事件与DOM Level 2事件之间有什么区别?我问,因为我被告知Firefox和IE以不同的顺序称呼它们,我之前从未听过这些术语。
答案 0 :(得分:8)
DOM Level 0事件基于在DOM元素上使用元素属性或命名事件的概念,例如:
<input type="button" onclick="clickMe();" />
或者
input.onclick = function() { ... };
使用DOM Level 2,我们现在可以通过addEventListener
,removeEventListener
等方式获得更加标准化的事件和订阅管理方法。
您可以在此处阅读更多内容here
直到IE8,Microsoft才在其浏览器中添加了对W3C事件管理标准的支持。不知道他们被叫什么顺序......
答案 1 :(得分:1)
除了先前的答案完全正确地提到的问题,其中集中在使用事件处理程序调用函数或执行其他JavaScript的类型(我的意思是使用内联注册模型和传统注册模型与使用addEventListener(。 ..),removeEventListener(...)或dispatchEvent(...))以及向this duplicated question添加其他信息,DOM Level 0与DOM Level 2事件模型之间还有另一个很大的区别。
通过DOM Level 2事件模型,可能只是特定对象(例如via:document.getElementById(“elementId”)),具有特定事件(click或load之一......)注册了任意数量的事件处理函数。例如:
<!DOCTYPE html>
<html>
<body>
<button id="btn">Test it</button>
<script>
document.getElementById("btn").addEventListener("click", function(){alert("first alert");});
document.getElementById("btn").addEventListener("click", function(){alert("second alert");});
</script>
</body>
</html>
这是DOM Level 0中的一个问题,它通过other solutions处理。