如何在执行后停止JavaScript?
如果其他人说出关键字,我会在聊天文本中创建一个javascript用于发帖。 但脚本发送消息而不是停止。
现在代码:
setInterval(function() {
jQuery('#frame_chatbox')
.replaceWith('<iframe id="framejqs" src="/chatbox" scrolling="yes" width="100%" height="100%" frameborder="0"></iframe>');
jQuery('#framejqs').contents()
.find('#chatbox_footer #chatbox_messenger_form #submit_button')
.click(function() {
if(jQuery('#framejqs').contents()
.find('#chatbox_footer #chatbox_messenger_form input[name="message"]')
.val().indexOf('HERE THE KEYWORD') != -1) {
$.post('/chatbox/chatbox_actions.forum?archives',
{mode:"send", sent:"HERE THE MENS"});
return false;
}
});
});
答案 0 :(得分:0)
它重复发送消息,因为发送函数包含在每毫秒触发一次的间隔中(第二个参数丢失):
setInterval(function () {
// ...
}, time_between_sends);
time_between_sends
定义了作为第一个参数传递给setInterval
的函数的不同调用之间经过的时间。
例如:
setInterval(function () {
console.log(new Date()); // logs the date once per second (1000ms === 1s)
}, 1000);
更一般地说,我会考虑使用事件监听器而不是间隔。
答案 1 :(得分:0)
您只需使用 clearInterval
即可var interval = setInterval(function() {
//your code
if(condition to stop interval)
{
clearInterval(interval);//clearing interval when you want
}
});
如果你想在post方法得到回复后停止它,你可以做以下事情:
代码:
var myVar = setInterval(function(){
var d = new Date();
var t = d.toLocaleTimeString();
document.getElementById("demo").innerHTML = t;
$.post('/echo/html/','',function(){
myStopFunction()//calling method to stop setInterval
});
}, 1000);
function myStopFunction() {
alert("stoping");
clearInterval(myVar);
}