Javascript:如何捕获调用函数的时刻

时间:2014-11-12 04:02:20

标签: javascript jquery events

我目前正在尝试在现有网页上放置一些我无法修改代码的代码。我的目标是“捕获”函数被调用的时刻,然后调用我自己的代码。

我可以看到两种方式,但到目前为止,我的研究都没有发现任何东西。

方式#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 = "";
    }
}

有人有想法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

如果Tie是全球性的:

Tie.oldwriteChat = Tie.writeChat;
Tie.writeChat = function(){
  alert("Tie.writeChat is called");
  this.oldwriteChat();
};