如何拦截推特按钮单击事件?

时间:2019-07-27 14:04:11

标签: javascript twitter onclick event-handling dom-events

我正在开发一个浏览器扩展,并且想要拦截tweet按钮的click事件,如下图所示:

a

我设法这样获得了元素节点:

document.querySelector('div[data-testid="tweetButton"]')

这是我试图做的:

  1. 覆盖节点的“点击”和“ onclick”功能
  2. 覆盖节点的“ click”事件监听器,即tweetButton.addEventListener("click", function() {})
  3. 删除“点击”事件监听器,即tweetButton.removeEventListener("click", function() {})
  4. 针对“ mousedown”和“ onmousedown”重复#1,#2和#3
  5. 通过document.addEventListener添加全局侦听器,然后检查选择器。回调被触发,但是即使我做了event.preventDefault()event.stopImmediatePropagation(),XHR仍然会通过。

事件侦听器所附加的对象可能不是此对象,但在HTML中它具有“按钮”角色,因此应该是该对象。

我可以通过听Ajax请求来实现相同的目标吗?

1 个答案:

答案 0 :(得分:0)

毕竟,解决方案2似乎是正确的:

let tweetButton = document.querySelector('div[data-testid="tweetButton"]');
tweetButton.addEventListener("click", function(event) {
  event.preventDefault();
  event.stopImmediatePropagation();
});

您可以在这里找到open-sourced code