HTML事件处理程序与DOM级别0事件处理程序之间的区别

Jon*_*nny 5 html javascript inline-code dom-events eventhandler

有人可以告诉我在JavaScript中实现HTML事件处理程序与DOM Level 0事件处理程序有什么区别?

Pau*_*tte 0

DOM0 事件是在 HTML 和 XHTML 规范中定义为内部事件的声明性事件:

内在事件是与元素结合使用的属性,当用户执行某些操作时,这些元素可能会发生特定事件。仅当选择定义这些元素的模块时,下表中指示的属性才会添加到其各自元素的属性集中。

标记语言的某些元素可能具有关联的事件处理程序,当某些事件发生时,这些事件处理程序被激活。用户代理需要能够识别那些与静态关联的事件处理程序的元素(即,在内容中关联,而不是在脚本中关联)。在 HTML 4([HTML4],第 18.2.3 节)中,内部事件由以前缀“on”开头的属性指定:onblur, onchange, onclick, ondblclick, onkeydown, onkeypress, onkeyup, onload, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup, onreset, onselect, onsubmit, and onunload

Internet Explorer 具有使用 DOM Level 0 属性分配方法定义的事件处理程序的正确范围,但在使用attachEvent().

0 级 DOM 支持以下节点列表:

document.images[],授予对页面上所有图像的访问权限。
document.forms[],授予对页面上所有表单的访问权限。
document.forms[].elements[],它授予对一种表单中所有表单字段的访问权限,无论其标签名称如何。这个nodeList是0级DOM特有的;W3C DOM 没有类似的构造。
document.links[],授予对页面上所有链接 () 的访问权限。
document.anchors[],授予页面上所有锚点 () 的访问权限。

本规范中定义的焦点事件按照相对于彼此的设定顺序发生。以下是焦点在元素之间转移时的典型事件顺序(此顺序假设最初没有焦点的元素):

活动名称 备注
1. focusin 在第一个目标元素获得焦点之前发送
2. focus 在第一个目标元素获得焦点后发送
3. focusout 在第一个目标元素失去焦点之前发送
4. focusin 在第二个目标元素获得焦点之前发送
5.blur 在第一个目标元素失去焦点后发送
6. focus 在第二个目标元素获得焦点后发送

以下是焦点在元素之间转移时的典型事件序列,包括已弃用的 DOMFocusIn 和 DOMFocusOut 事件。显示的顺序假定最初没有聚焦任何元素。

C.2.1 旧版 FocusEvent 事件顺序

活动名称 备注
1. focusin 在第一个目标元素获得焦点之前发送
2. focus 在第一个目标元素获得焦点后发送
3. DOMFocusIn 如果支持
4. focusout 在第一个目标元素失去焦点之前发送
5. focusin 在第二个目标元素获得焦点之前发送
6.blur 在第一个目标元素失去焦点后发送
7. DOMFocusOut 如果支持
8. focus 在第二个目标元素获得焦点后发送
9. DOMFocusIn 如果支持

HTML 事件是 DOM 规范中定义为 HTMLEvent 的命令式事件:

 The Level 0 DOM supports the following nodeLists:

document.images[], which grants access to all images on the page.
document.forms[], which grants access to all forms on the page.
document.forms[].elements[], which grants access to all form fields in one form, whatever their tag name. This nodeList is unique to the Level 0 DOM; the W3C DOM does not have a similar construct.
document.links[], which grants access to all links () on the page.
document.anchors[], which grants access to all anchors () on the page.

参考