如何复制事件监听器的附加匿名函数?

时间:2018-12-22 19:59:02

标签: javascript tampermonkey

我正在尝试构建一个 Tampermonkey 用户脚本,该脚本可以修改应用于元素的事件的功能。

让我们说源网站有这个:

<div id="item_1">…</div>

并在源网站的Javascript中:

document.getElementById("item_1").addeventlistener("click", function(){
    // Source website's lines of code for the function to be applied on click event occurrence.
}

我知道我可以使用以下方法轻松覆盖事件功能:

document.getElementById("item_1").addeventlistener("click", function(){
    // My lines of code here
}

但是我要寻找的是首先将先前传入的anonymous function复制到addEventListener方法中。我想将其复制到一个临时变量中,以便可以找回原始的事件侦听器附加函数。

还有一个问题,其中有一个answer告诉我们不可能复制事件监听器的功能。我认为这可能会以某种方式实现,因为我认为传入的匿名函数通过一些引用存储在堆中。如果能够获得该引用,则可以将代码的副本复制到另一个变量。

我无权编辑源脚本。我知道我可以重构代码来处理事件填充。另外,我知道我可以对源JavaScript进行一些操作,但是我不想这样做,因为我的用户脚本代码会变得过于复杂,如果对源代码进行一些更改,我的代码很容易被破坏。我想轻松地将事件侦听器功能复制到我拥有的变量中。

0 个答案:

没有答案