Uniswap Swap页面注入document.body点击事件监听失效原因咨询
Uniswap模态框点击事件无法捕获的原因
- 事件冒泡被阻止:Uniswap的币种选择模态框内部的点击处理代码里,大概率调用了
event.stopPropagation()或event.stopImmediatePropagation(),直接切断了事件向上冒泡的路径,导致绑定在document.body上的监听器收不到事件。 - 模态框挂载节点不在body下:很多现代前端框架会用Portal技术把模态框挂载到
document.body之外的节点(比如直接挂到根节点document.documentElement),或者单独创建的容器里。这种情况下,模态框的点击事件只会在自身挂载的节点树里冒泡,到不了你绑定监听的document.body。 - 捕获阶段被提前拦截:你绑定的是冒泡阶段的事件监听,而Uniswap可能在事件的捕获阶段就添加了监听器并阻止了事件传递,你的监听器自然拿不到事件。
内容的提问来源于stack exchange,提问作者唐好酸
相关产品推荐
相关产品推荐

