gpt4 book ai didi

javascript - 为什么我不能在控制台中循环滚动浏览器窗口?

转载 作者:行者123 更新时间:2023-11-30 06:15:54 25 4
gpt4 key购买 nike

我想在控制台的循环中向下滚动浏览器窗口。我想要它,以便每次向下滚动 (x)px 时我停下来,做一些事情然后再次滚动 (x)px 然后停止等直到页面结束(它很长,我想解析信息从它)。

但是当我开始时,我偶然发现了一个问题,滚动函数只在循环结束后执行一次。

let i = 0;
scrollDownTillEnd = () => {
for(i; i<100; i++) {
window.scrollBy(0, 1000);
};
scrollDownTillEnd();

(是一个简化的例子,但是思路应该很清晰)

我将代码放在控制台中,在我想滚动的页面上,然后在循环结束时获取 i 的值,并且只向下滚动一次。

请解释一下,为什么这段代码会这样,以及如何让它工作,正如我之前提到的(在每个循环中它都会滚动一点)。

谢谢!

最佳答案

让我帮助解决这里发生的一些问题。

1) 你有一个无限循环正在进行,因为你没有检查 i小于 100,即使你每次都递增它。您需要检查 i < 100这样循环最终会结束。在您的循环中,0 将始终小于 100,因此循环永远不会结束。

2) 您的示例中存在语法错误,因为您实际上并未关闭 scrollDownTillEnd在调用函数本身之前用花括号调用函数。

3) 最后,作为一种好的做法,您需要重置您的 i变量每次都为 0,以便我们可以一遍又一遍地运行这段代码。你在你的例子中设置它的方式,因为i在第一次运行结束时将等于 100,此后循环将不会再次运行,直到您重置 i再次为 0。最简单的方法是初始化 i每次执行此循环时都为 0。

尝试这样的事情:

scrollDownTillEnd = () => {
for(let i = 0; i < 100; i++) {
window.scrollBy(0, 1000);
};
};
scrollDownTillEnd();

关于javascript - 为什么我不能在控制台中循环滚动浏览器窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56173022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com