十秒钟后如何停止功能?

时间:2018-12-15 19:07:57

标签: javascript timeout settimeout

我在尝试找到一种加载Reddit页面的方法时发现了这段代码,以便可以使用ctrl + f查找特定的帖子。问题在于它只是一直向下滚动并加载页面。我需要找到一种方法在10秒后将其停止,以便可以查看加载的内容。另外我不知道任何JavaScript,所以我找不到能帮助我的任何东西。

这是代码

var lastScrollHeight = 0;
function autoScroll() {
  var sh = document.documentElement.scrollHeight;
  if (sh != lastScrollHeight) {
    lastScrollHeight = sh;
    document.documentElement.scrollTop = sh;
  }
}
window.setInterval(autoScroll, 100);

我只是将其粘贴到firefox控制台中。

5 个答案:

答案 0 :(得分:1)

setInterval()函数返回一个ID,您可以使用它来停止它。 像这样将其放在setTimeout()方法中即可:

var myInterval = setInterval(autoscroll, 100);
setTimeout(function(){ clearInterval(myInterval); }, 10000);

答案 1 :(得分:1)

要在一定时间后停止间隔,请使用调用setTimeout()的{​​{1}}。这是一个简化的版本(出于演示目的,时间减少到了1秒),应该会有所帮助:

clearInterval()

答案 2 :(得分:0)

....
var intervalID = window.setInterval(autoScroll, 100);

setTimeout(function(){
    clearInterval(intervalID);
}, 10000);

答案 3 :(得分:0)

使用if(0)设置为10秒后,您只需要在循环函数上调用clearInterval即可停止它,这是实现它的方法:

setTimeout

答案 4 :(得分:0)

您可以使用setTimeout来调用该函数,直到10s为止。

这是一个立即调用的函数,该函数每100秒调用一次,直到达到10s。

(function autoScroll(t) {
  t = t || 0;
  if (t < 10000) {
    console.log(t);
    setTimeout(autoScroll, 100, t += 100);
  }
})();