停止正在运行的脚本

时间:2018-09-12 13:34:57

标签: javascript

我在浏览器中运行一个脚本来向下滚动页面。我从浏览器控制台(ctrl + shift + j)运行它。

var popWys = 0;
    var terazWys = 0;
    var proba = 0;
    function scrollowanie() {
        if(popWys == document.body.scrollHeight)
        {
            proba++;
            if(proba > 10)
            {
                window.alert("To juz chyba wszystko, w razie czego odpal ponownie.");
                return;
            }
        }
        else
        {
            proba = 0;
        }
        popWys = document.body.scrollTop;
        terazWys += 1000;
        window.scrollTo(0,terazWys);

        setTimeout(scrollowanie, 100);
    }
    setTimeout(scrollowanie, 100);

问题。如何随时从命令行停止它?我可以写点东西,按停止吗? Sam永远不会停止并阻止浏览器。我尝试了不同的方法:return;打破;停止。一切都没有用。

能做到吗?

2 个答案:

答案 0 :(得分:0)

您可以使用clearTimeout([variable name])来停止setTimeout(scrollowanie, 100);

只需将setTimeout(scrollowanie, 100);分配给全局变量,如下所示:

globalVar = setTimeout(scrollowanie, 100);

然后在控制台中输入clearTimeout(globalVar),执行将结束

答案 1 :(得分:0)

您可以将所需的行为包装在处理该过程的对象中。

例如:

var script = (function () {
  var timeout;
  var DESIRED_TIME = 100;

  function scrollowanie() {
    console.log('::Testing');

    // Desired behaviour here

    clearTimeout(timeout);
    timeout = setTimeout(scrollowanie, DESIRED_TIME)
  }

  return {
    start: function() {
      timeout = setTimeout(scrollowanie, DESIRED_TIME);
    },
    stop: function () {
      clearTimeout(timeout);
    }
  }
})();

然后在命令行中,您只需要启动该过程

script.start();

并结束它

script.stop();