yuzi233 发表于 2023-6-5 14:11:04

如何劫持网页原生js事件

刚开始学js,求助
!(data/attachment/forum/202306/05/135325j88fe4bhzxaigibk.png)
我想将虎扑的top栏的“消息”和“私信”改成新标签页打开,可是我看他的元素是一个span
!(data/attachment/forum/202306/05/135515uwaivw01fikpi1wy.png)
用e.preventDefault()方法没法阻止当前页跳转,有无大佬教教,或者告诉我应该看论坛教程的哪一篇?
!(data/attachment/forum/202306/05/140954uxqn3wttdyt2svzi.png)

steven026 发表于 2023-6-5 14:11:05

`e.preventDefault()`阻止的是默认事件
`<span>`没有默认事件,
点击跳转页面是自定义事件监听。
所以你要做的是阻止自定义事件监听

把`e.preventDefault()`
改成`e.stopImmediatePropagation()`是阻止同级其他事件监听
改成`e.stopPropagation()`是阻止上级事件监听

另外建议事件监听加一个参数true,保证监听优先运行`document.addEventListener(type,fuc,**true**)`上

建议阅读文档
https://developer.mozilla.org/zh-CN/docs/Web/API/EventTarget/addEventListener
https://developer.mozilla.org/zh-CN/docs/Web/API/Event/stopImmediatePropagation
https://developer.mozilla.org/zh-CN/docs/Web/API/Event/stopPropagation
https://developer.mozilla.org/zh-CN/docs/Web/API/Event/preventDefault

李恒道 发表于 2023-6-5 16:23:12

steven026 发表于 2023-6-5 16:03
`e.preventDefault()`阻止的是默认事件
``没有默认事件,
点击跳转页面是自定义事件监听。


史蒂文爱妃有空不如帮我重新写一下addEventListener部分!

steven026 发表于 2023-6-5 16:30:40

李恒道 发表于 2023-6-5 16:23
史蒂文爱妃有空不如帮我重新写一下addEventListener部分!

学车 忙
另外上周五 Ruin has come to our family.
我以后更不可能有空了 忙着重写丢的脚本【

李恒道 发表于 2023-6-5 16:41:16

steven026 发表于 2023-6-5 16:30
学车 忙
另外上周五 Ruin has come to our family.
我以后更不可能有空了 忙着重写丢的脚本【 ...

Ruin has come to our family.是啥
页: [1]
查看完整版本: 如何劫持网页原生js事件