我正在尝试构建一个用于在聊天室中添加表情符号的greasemonkey脚本 .
我需要检测聊天框的刷新并替换表情符号:聊天框刷新页面上的setInterval:
setInterval(refreshChat, 7000);
Normaly我会用这种方式劫持这个
var refreshChat = unsafeWindow.refreshChat;
unsafeWindow.refreshChat = function() {
doSmileyReplace();
return refreshChat();
};
但由于某种原因,这不会注册?我尝试在greasemonkey中设置我自己的间隔,然后运行5毫秒,然后是页面本身的setinterval,它可以工作,但看起来不对 .
refreshChat函数没什么特别的
function refreshChat() {
var randomnumber=Math.floor(Math.random()*500000);
$('#chat').load('chat.php?cachebuster='+randomnumber+'&method=chat');
}
So how do I catch the setInterval?
3 回答
$('#chat').load(
进行ajax调用 . 您将在AJAX调用返回之前替换表情符号 . 如果可以一起替换refreshChat
,那么只需在load
上添加一个完整的函数:为什么不用这个:
其中
mycoolhijecfunc
是添加表情符号的函数 .得到这个来自TWpro的来源,我惊呆了看到它的工作,我通常修改它是:
替换
refreshChat
将无法正常工作,因为新消息是由AJAX异步加载的 .幸运的是,该页面使用了jQuery,因此触发AJAX很容易 . 你可以这样做:
请注意,延迟可能没有必要,我把它放在那里以防万一 .