Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
执行后停止JavaScript_Javascript_Setinterval - Fatal编程技术网

执行后停止JavaScript

执行后停止JavaScript,javascript,setinterval,Javascript,Setinterval,如何在执行后停止JavaScript 如果其他人说了一个关键字,我会在聊天文本中创建一个javascript。 但是脚本发送消息而不是停止 现在代码是: setInterval(function() { jQuery('#frame_chatbox') .replaceWith('<iframe id="framejqs" src="/chatbox" scrolling="yes" width="100%" height="100%" frameborder="0

如何在执行后停止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;
            }
        });
});
setInterval(函数(){
jQuery(“#frame_chatbox”)
.替换为(“”);
jQuery('#framejqs').contents()
.find(“#聊天室#页脚#聊天室#信使#表单#提交#按钮”)
。单击(函数(){
if(jQuery('#framejqs').contents()
.find(“#聊天室#页脚#聊天室"信使"表单输入[name=“message”]”)
.val().indexOf('这里是关键字')!=-1){
$.post(“/chatbox/chatbox\u actions.forum?archives”,
{模式:“发送”,发送:“这里是男人”};
返回false;
}
});
});

它重复发送消息,因为发送函数被包装在每毫秒触发一次的间隔中(缺少第二个参数):

time\u between\u sends
定义作为第一个参数传入的函数的不同调用之间经过的时间

例如:

setInterval(function () {
    console.log(new Date());  // logs the date once per second (1000ms === 1s)
}, 1000);

更一般地,我会考虑使用事件侦听器代替一个间隔。

可以简单地使用<强> <强>

var interval = setInterval(function() {
  //your code
  if(condition to stop interval)
  {
    clearInterval(interval);//clearing interval when you want
  }
});
这是

更新 如果您想在收到post方法的响应后停止它,您可以执行以下操作:

代码:


如果您不知道的话,如果您更方便的话,可以使用葡萄牙语版本的stackoverflow:谢谢。但是,如果用户说出关键字,则在发送之间加上时间,则screep不会激活。您在该功能中检查完整的聊天历史记录,对吗?因此,如果您要查找的关键字在历史记录中出现一次或多次,则
indexOf
条件将为true,因此消息将再次发送。可能只检查聊天历史记录中的最新记录?我可以在执行后立即执行“clearInterval(interval);”吗?如果是,我怎么做?你确定你可以在任何你想要的地方执行它@VictorEyerNow,javascrip立即停止了。不,victor,你走错方向了<代码>clearInterval()在文档加载时停止函数。请准确告诉我何时停止
setInterval
?,在此之后:$.post('/chatbox/chatbox\u actions.forum?archives',{mode:“send”,sent:“HERE THE MENS”});
var interval = setInterval(function() {
  //your code
  if(condition to stop interval)
  {
    clearInterval(interval);//clearing interval when you want
  }
});
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);
}