javascript - 如何拦截推文按钮点击事件?
问题描述
我正在开发一个浏览器扩展,我想拦截推文按钮点击事件,如下图所示:
我设法得到这样的元素节点:
document.querySelector('div[data-testid="tweetButton"]')
这就是我试图做的:
- 覆盖节点的“click”和“onclick”函数
- 覆盖节点的“点击”事件监听器,即
tweetButton.addEventListener("click", function() {})
- 去掉“点击”事件监听器,即
tweetButton.removeEventListener("click", function() {})
- 对“mousedown”和“onmousedown”重复 #1、#2 和 #3
- 通过添加全局侦听
document.addEventListener
器并检查选择器。回调被触发,但 XHR 仍然通过,即使我做了event.preventDefault()
并且event.stopImmediatePropagation()
.
也许事件侦听器所附加的不是这个对象,但在 HTML 中它具有“按钮”角色,所以它应该是那个。
我可以通过监听 Ajax 请求来实现相同的目标吗?
解决方案
毕竟,似乎解决方案 #2 是正确的:
let tweetButton = document.querySelector('div[data-testid="tweetButton"]');
tweetButton.addEventListener("click", function(event) {
event.preventDefault();
event.stopImmediatePropagation();
});
你可以在这里找到开源代码。
推荐阅读
- python - 如果变量不同,R 和/或 Pandas-Python 函数可根据条件创建新变量
- c# - Xamarin 表单 WebAuthenticator 使用
- php - PHPMailer 和附件在打开时无法正确显示
- python - 如何在 python 的同一个图中绘制多条线?
- html - 我如何在表格中像这样格式化我的数据
- javascript - 对模块导出/需求感到困惑
- rust - if else 借入时临时价值下降
- git - git commit -m 后有没有办法修复以下错误?
- eclipse - maven资源插件中的执行标签有错误Macbook M1
- ckeditor - 在右键单击时以编程方式显示 CKEditor5 Balloon 工具栏?