如何通过Google Chrome使用Javascript多次滚动到页面底部?

时间:2018-07-23 22:04:47

标签: javascript google-chrome web-scraping scroll automatic-updates

我正在与Youtube一起进行Web搜刮项目。我需要通过Javascript自动滚动到底部。我在Google Chrome Inspect控制台终端中输入命令。

此链接:https://stackoverflow.com/a/29971996/3326078指导我使用此链接:

window.scrollTo(0, document.body.scrollHeight ||document.documentElement.scrollHeight);

上述工作正常。

但是,当我这样做时,

for (var i = 0; i < 5; i++) {  
    setTimeout(window.scrollTo(0, document.body.scrollHeight 
|| document.documentElement.scrollHeight),5)}

它不会重复多次。有人可以向我解释我试图做的事是否可能。同样,我要在Google Chrome浏览器检查器控制台中输入此命令。

谢谢!

1 个答案:

答案 0 :(得分:1)

for循环在继续运行之前不会等待setTimeout完成。如果要让滚动等待setTimeout完成并运行一定的次数,则需要一个函数来调用超时,并在其中再次调用该函数。

许多方法可以做到这一点,但这是我的实现方式:

var scrollToBottomWithTimeout = function (param_iterations, param_wait_time) {
  setTimeout(function () {
    window.scrollTo(0, document.body.scrollHeight || document.documentElement.scrollHeight);

    if (param_iterations > 0) {
      param_iterations = param_iterations - 1;
      scrollToBottomWithTimeout(param_iterations, param_wait_time);
    }
  }, param_wait_time);
};

声明后,可以像下面这样调用该函数:

scrollToBottomWithTimeout(5, 5);