2014-10-29 21 views
0

我知道scrollBy函数,但是可以使用JavaScript控制台中键入的命令向下滚动网页,以便页面自动使用传递的参数进行滚动?在浏览器中使用JavaScript控制台进行自动滚动

键入功能

function pageScroll() { 
    window.scrollBy(0,50); // horizontal and vertical scroll increments 
    scrolldelay = setTimeout('pageScroll()',100); // scrolls every 100 milliseconds 
} 

,然后调用它没有在Chrome中。

+0

适合我。 – gdoron 2014-10-29 13:40:00

+0

你真的调用过这个函数吗?它也适用于我 – Markai 2014-10-29 13:43:07

+0

好吧,我打电话给方法之前打入输入。 – Muteking 2014-10-29 13:53:17

回答

0

它可能会显示一条错误"too much recursion"

你应该尝试setInterval(),而不是setTimeout()。检查这个示例代码。

setInterval(function(){ 
     window.scrollBy(0,50); 
    },100); 
1

试试这个;我经常自己使用它。

(function() { 
    var intervalObj = null; 
    var retry = 0; 
    var clickHandler = function() { 
     console.log("Clicked; stopping autoscroll"); 
     clearInterval(intervalObj); 
     document.body.removeEventListener("click", clickHandler); 
    } 
    function scrollDown() { 
     var scrollHeight = document.body.scrollHeight, 
      scrollTop = document.body.scrollTop, 
      innerHeight = window.innerHeight, 
      difference = (scrollHeight - scrollTop) - innerHeight 

     if (difference > 0) { 
      window.scrollBy(0, difference); 
      if (retry > 0) { 
       retry = 0; 
      } 
      console.log("scrolling down more"); 
     } else { 
      if (retry >= 3) { 
       console.log("reached bottom of page; stopping"); 
       clearInterval(intervalObj); 
       document.body.removeEventListener("click", clickHandler); 
      } else { 
       console.log("[apparenty] hit bottom of page; retrying: " + (retry + 1)); 
       retry++; 
      } 
     } 
    } 

    document.body.addEventListener("click", clickHandler); 

    intervalObj = setInterval(scrollDown, 1000); 

})() 
相关问题