javascript - 在任意 JS 函数上设置事件处理程序?

标签 javascript function

我想编写一个适用于特定的基于 JS 的聊天应用程序的 Chrome 扩展程序。每次聊天收到消息时都需要意识到这一点。

现在,我显然可以通过设置计时器并检查 $("chat-messages").childElements().length 是否增加来轻松做到这一点,但我宁愿采用更优雅的方法,设置某种事件处理程序,以便在每次调用 appendChatMessage() 时触发。有办法做到这一点吗?

var oldfunc = appendChatMessage;
appendChatMessage = function() { eval(oldfunc); myChatMessageReceivedHandler(); }

似乎不起作用。

最佳答案

如果有一个方法 appendChatMessage 每次有新消息到达时都会调用,您可以这样做

var old = appendChatMessage;
appendChatMessage = function() {
    // call the initial method and store the result
    var result = old.apply( this, arguments );

    // do your stuff here

    // return the initial result
    return result;
};

关于javascript - 在任意 JS 函数上设置事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6565796/

相关文章:

名为 "action"的 JavaScript 函数

javascript - 为什么 AJAX 调用会被忽略?

javascript - 出现在 Javascript 呈现的 HTML 中的逗号

javascript - 从属性数组和匹配属性值数组创建 JavaScript 对象的有效方法

C++ |如何在每次不返回值的情况下循环 If 语句

javascript - window.onresize : firing a function during, 以及调整大小完成时

javascript - SlideDown 动画不正确 - jQuery

javascript - 如何在 NodeJS 中生成像 facebook、google+ 这样的唯一 ID

Haskell 中的函数——理解

从输入中删除注释的 C 函数