我目前正在尝试在现有网页上放置一些我无法修改代码的代码。我的目标是“捕获”函数被调用的时刻,然后调用我自己的代码。
我可以看到两种方式,但到目前为止,我的研究都没有发现任何东西。
方式#1:在函数本身上放置某种事件监听器,据我所知,这些只适用于DOM对象,因此不起作用。
方式#2:使用functionName.ToString()捕获函数代码,在末尾追加一个触发器并重新插入。我的问题是我无法想象如何在脚本运行时重新定义函数。
这是我试图在调用时编写的代码。它位于包含函数的全局对象Tie中。
Tie.writeChat = function() {
this.ctiming = baseChatUpdate;
clearTimeout(this.chatSlow);
this.chatSlow = setTimeout(function() {
Tie.ctiming = 60 * 1 * 1000;
console.log("Slow chat");
}, 60 * 15 * 1000);
var msg = Tie.enc(Tie.id("chatmsg").value);
var c = Tie.id("change").innerHTML;
if (msg != "") {
Tie.request("write.php", "msg: " + msg + ", c: " + c);
Tie.id("chatmsg").value = "";
}
}
有人有想法吗?
感谢。
答案 0 :(得分:1)
如果Tie
是全球性的:
Tie.oldwriteChat = Tie.writeChat;
Tie.writeChat = function(){
alert("Tie.writeChat is called");
this.oldwriteChat();
};