我发现由生成的change事件在Chrome 80中的composed
属性被设置为false
。
Event.composed
属性决定了事件是否会穿过shadow DOM边界传播。Mozilla上Event.composed
的文档(https://developer.mozilla.org/en-US/docs/Web/API/Event/composed)说明:
所有UA分派的UI事件都是组合的(单击/触摸/鼠标悬停/复制/粘贴等)。
那么,composed=false
是input change事件的预期行为吗?
这是否记录在规范中(我尝试过没有成功找到)?
如果这是预期行为,那么change
的composed=false
,但单击事件的composed=true
的原理是什么?
谢谢, 亚当
InputEvents
和UIEvents
会从Shadow Dom中冒泡出来?关于理由,你说“只有被认为是用户操作的事件才应该冒泡出来”,但在HTML Living Standard 4.10.5.5中,change
和input
事件在用户操作方面具有相同的地位,仅在发生时间上有所不同:修改(input
)或提交(change
)。我并不想争论,只是想理解... - adamk