请问有人可以告诉我HTML事件处理程序和JavaScript中DOM Level 0事件处理程序的实现之间有什么区别吗?
请问有人可以告诉我HTML事件处理程序和JavaScript中DOM Level 0事件处理程序的实现之间有什么区别吗?
DOM0事件是在HTML和XHTML规范中定义的声明性事件:
Level 0 DOM支持以下节点列表:内置事件是与可以在用户执行某些操作时发生特定事件的元素一起使用的属性。以下表格中指示的属性仅在选择定义这些元素的模块时添加到其各自元素的属性集中。
标记语言的某些元素可能具有关联的事件处理程序,当某些事件发生时,这些处理程序将被激活。用户代理需要能够静态地识别那些具有静态关联事件处理程序的元素(即,与内容相关,而不是脚本)。在HTML 4中([HTML4],第18.2.3节),“on”前缀开始的属性指定内部事件:
onblur,onchange,onclick,ondblclick,onkeydown,onkeypress,onkeyup,onload,onmousedown,onmousemove,onmouseout,onmouseover,onmouseup,onreset,onselect,onsubmit和onunload
。Internet Explorer对于使用属性分配的DOM Level 0方法定义的事件处理程序具有正确的范围,但在使用
attachEvent()
时没有。
<iframe src="https://www.w3.org/DOM/Graphics/dom2-map.svg" width="900" height="400"></iframe>
<img src="https://www.w3.org/TR/DOM-Level-3-Events/images/eventflow.svg" width="400" height="400"/>
参考资料