gpt4 book ai didi

javascript - DOM : Is it possible for user interaction to occur on anything but an element node?

转载 作者:行者123 更新时间:2023-11-30 17:39:50 25 4
gpt4 key购买 nike

在 W3C 浏览器规范中,有很多用户交互事件。按键、点击、鼠标移动等

其中大部分发生在 window 对象上 (mousemove),但也有一些发生在元素上 (click)。

除了窗口对象或元素之外,是否有任何事件发生?

例如,浏览器是否可以在文本节点上分派(dispatch)点击事件?

有哪些节点类型对应哪些事件类型的列表吗?

最佳答案

Is there any time an event occurs on anything but the window object or an element?

DOM 3 Event Types可以出现在 documentdefaultView 对象上,并且有一长串 Legacy Event Types这可能发生在更广泛的节点类型上。

虽然绝大多数 DOM 3 事件都有一个元素作为它们的事件目标,但不应假设事件目标总是是一个元素。任何类型的节点都可以派发事件(即可以是事件目标)。 Interface Node 的 12 种节点类型中, 11 不是一个元素。

W3C DOM 规范定义了与各种类型的节点关联的事件类型,但并不限制可以作为事件目标的节点类型:

Note: Though an event listener can be registered for any event target node, the user agent only dispatches UA-generated (trusted) events on node types that are defined as event target types for that specific event type (see the List of DOM3 Event Types). For example, a mouseover event type registered on a text node will never be fired by the user agent, though a content author could dispatch an event of that type on the text node via script.

Document Object Model (DOM) Level 3 Events Specification (Draft) §4.3

因此,即使 W3C 没有为非元素节点指定标准事件,它们在未来可能和内容作者(开发人员)已经可以从非元素节点调度事件(并且已经能够为一些时间)。

此外,浏览器并不仅限于 W3C 规范中的那些事件,它们可以随心所欲。

is it possible for a click event to be dispatched on a text node by the browser

是的,Safari 的早期版本就是这样做的。然而,它与其他浏览器不一致,因此进行了更改以符合常见行为。

关于javascript - DOM : Is it possible for user interaction to occur on anything but an element node?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21324850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com