我正在尝试构建一个 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进行一些操作,但是我不想这样做,因为我的用户脚本代码会变得过于复杂,如果对源代码进行一些更改,我的代码很容易被破坏。我想轻松地将事件侦听器功能复制到我拥有的变量中。