- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 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可以出现在 document 和 defaultView 对象上,并且有一长串 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/
我是一名优秀的程序员,十分优秀!