如何用 event.composedPath 获取事件触发经过的所有节点

event.composedPath()用于获取事件在Shadow DOM中的完整传播路径,返回从目标节点到根节点的数组;适用于Web Components中跨Shadow边界精准判断事件来源或委托。event.composedPath() 是一个用于获取事件在 Shadow DOM 中传播路径的方法,它返回一个包含事件经过的所有节点(包括 Shadow DOM 内部节点)的数组,从最内层目标节点开始,一直到根节点(通常是 document 或 shadowRoot 的宿主元素)。什么时候需要使用 composedPath()当你的页面使用了 Web Components(尤其是带 Shadow DOM 的自定义元素),且事件从 Shadow DOM 内部触发、冒泡到外部 DOM 时,普通 event.path(非标准)或 event.target/event.currentTarget 可能无法反映完整路径------因为 Shadow DOM 有"穿透边界"的限制。而 composedPath() 是标准方法,能准确还原事件真实经过的全部节点链。例如:点击一个封装在 Shadow DOM 中的按钮,想判断它是否位于某个特定自定义组件内部,或是否经过某类容器,就需要这个路径。基本用法和返回结构调用方式很简单:element.addEventListener('click', (e) => { const path = e.composedPath(); console.log(path); // button, #shadow-root, my-card, body, html, document});返回数组顺序是:从事件目标开始,逐级向上直到根。注意: 文心快码 文心快码(Comate)是百度推出的一款AI辅助编程工具

相关推荐
曹牧2 小时前
Oracle:前缀匹配之REGEXP_LIKE
数据库·oracle
Unbelievabletobe2 小时前
解决了股票api接口盘后数据更新慢的问题
大数据·开发语言·python
lpd_lt4 小时前
AI Coding的常用Prompt技巧
python·ai·ai编程
小江的记录本4 小时前
【JVM虚拟机】堆内存分代模型:年轻代(Eden+Survivor)、老年代、元空间Metaspace(附《思维导图》+《面试高频考点清单》)
java·前端·jvm·后端·python·spring·面试
在繁华处4 小时前
Java从零到熟练(三):流程控制
java·开发语言·python
asdzx674 小时前
使用 Python 快速提取 PDF 中的表格
python·pdf
无情的西瓜皮4 小时前
MCP协议实战:用Python从零搭建一个AI Agent工具服务器(保姆级教程)
服务器·人工智能·python·mcp
暴躁小师兄数据学院5 小时前
【AI大数据工程师特训笔记】第05讲:关联查询
数据库·sql·oracle
倔强的石头_5 小时前
《Kingbase护城河》——跨平台环境下的数据库联调实战
数据库
lzhdim5 小时前
SQL 入门 17:MySQL 数据类型:从字符串到 JSON 的全面解析
数据库·sql·mysql·json