Может ли кто-нибудь сказать мне, в чем разница между реализацией обработчика событий HTML и обработчиком событий DOM уровня 0 в JavaScript?
Разница между обработчиком событий HTML и обработчиком событий DOM уровня 0
Ответы (1)
События DOM0 — это декларативные события, определенные в спецификациях HTML и XHTML как внутренние события:
Внутренние события — это атрибуты, которые используются в сочетании с элементами, которые могут иметь определенные события, когда определенные действия выполняются пользователем. Атрибуты, указанные в следующей таблице, добавляются к набору атрибутов соответствующих элементов только тогда, когда выбраны модули, определяющие эти элементы.
Некоторые элементы языка разметки могут иметь связанные обработчики событий, которые активируются при возникновении определенных событий. Пользовательские агенты должны иметь возможность идентифицировать эти элементы со статически связанными обработчиками событий (т. е. связанными в содержимом, а не в сценарии). В HTML 4 ([HTML4], раздел 18.2.3) внутренние события задаются атрибутами, начинающимися с префикса:
onblur, onchange, onclick, ondblclick, onkeydown, onkeypress, onkeyup, onload, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup, onreset, onselect, onsubmit, and onunload
.Internet Explorer имеет правильную область действия для обработчиков событий, определенных с помощью метода назначения свойств уровня DOM 0, но не при использовании
attachEvent()
.
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.
События фокуса, определенные в этой спецификации, происходят в установленном порядке относительно друг друга. Ниже приведена типичная последовательность событий, когда фокус перемещается между элементами (этот порядок предполагает, что ни один элемент изначально не был сфокусирован):
Event Name Notes 1. focusin Sent before first target element receives focus 2. focus Sent after first target element receives focus 3. focusout Sent before first target element loses focus 4. focusin Sent before second target element receives focus 5. blur Sent after first target element loses focus 6. focus Sent after second target element receives focus
Ниже приведена типичная последовательность событий при смещении фокуса между элементами, включая устаревшие события DOMFocusIn и DOMFocusOut. Показанный порядок предполагает, что изначально ни один элемент не находится в фокусе.
C.2.1 Legacy FocusEvent event order Event Name Notes 1. focusin Sent before first target element receives focus 2. focus Sent after first target element receives focus 3. DOMFocusIn If supported 4. focusout Sent before first target element loses focus 5. focusin Sent before second target element receives focus 6. blur Sent after first target element loses focus 7. DOMFocusOut If supported 8. focus Sent after second target element receives focus 9. DOMFocusIn If supported
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"/>
Ссылки