【问题标题】:Difference between HTML Event Handler vs DOM Level 0 Event Handler [closed]HTML 事件处理程序与 DOM 0 级事件处理程序之间的区别 [关闭]
【发布时间】:2015-10-15 19:36:58
【问题描述】:

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

【问题讨论】:

  • 这可能对你有用:stackoverflow.com/q/5642659/830125
  • 非常感谢,但它并没有真正回答区别是什么
  • 没有 DOM L0 规范,该术语仅用于指代非标准的广泛功能。然后它们被标准化为 HTML。
  • 谢谢!这是我测试中的一个问题,他以某种方式解释它:一个是 onclick="",另一个说定义一个变量 _b=document.getElementby 然后 _b.onclick=""。
  • 我认为这个问题应该细化以明确提出的问题:a)如何使用两种方法之一注册事件?或 b) 浏览器如何实现这 2 种方法中的每一种?,或者 c) 其他方法...,如果前面没有,则继续 d) 关闭它

标签: javascript html eventhandler inline-code dom-events


【解决方案1】:

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 级别 0 属性分配方法定义的事件处理程序的正确范围,但在使用 attachEvent() 时则没有。

Level 0 DOM 支持以下节点列表: document.images[],授予对页面上所有图像的访问权限。 document.forms[],它授予对页面上所有表单的访问权限。 document.forms[].elements[],它授予对一种表单中所有表单字段的访问权限,无论其标签名称如何。这个 nodeList 对于 Level 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 规范中定义为 HTMLEvents 的命令式事件:

<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"/>

参考文献

【讨论】:

    猜你喜欢
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多