Javascript 正在从web浏览器控制台执行停止命令

Javascript 正在从web浏览器控制台执行停止命令,javascript,browser,web,Javascript,Browser,Web,我想在chrome控制台中执行一个循环,但我想在它运行时停止它(不关闭web浏览器)。那么怎么做呢。谢谢你的帮助 这是我的脚本,我想停止此操作: for(var i=0;i<20;i++) { (function (i) { setTimeout(function () { { scrollBy(1500, 999999); } }, 8000 * i); }(i

我想在chrome控制台中执行一个循环,但我想在它运行时停止它(不关闭web浏览器)。那么怎么做呢。谢谢你的帮助

这是我的脚本,我想停止此操作:

for(var i=0;i<20;i++) {
    (function (i) {
        setTimeout(function () {
            {
                scrollBy(1500, 999999);
            }
        }, 8000 * i);
    }(i));
};
setTimeout(function () {
    alert('Finish--------------!');
}, 8000 * (i));

for(var i=0;i可以尝试另一个函数结构:
例如

//当页面快结束时,代码将停止
var i=0;
函数someFunc(){
setTimeout(函数(){
{
scrollBy(0200);
}
},8000*i);
i++;
如果($(window).height()-window.pageYOffset<200)i=20;

if(i如果我错了,请纠正我,但我认为您正在尝试清除超时对象,而不是停止循环

试着这样做:

var obj = [];

for(var i=0;i<20;i++) {
    (function (i) {
        obj.push(setTimeout(function () {
            {
                scrollBy(1500, 999999);
            }
        }, 8000 * i));
    }(i));
}

obj.push(setTimeout(function () {
    alert('Finish--------------!');
}, 8000 * (i)));

// when this function is called it will loop over the timeout objects
// you created in the above loop and clear them
function clearTO() {
    var i;
    for (i = 0; i < obj.length; i += 1) {
        clearTimeout(obj[i]);
    }
}

// if typing 'yes' in the prompt gives you the behavior 
// you're looking for replace this timeout function with something more dynamic that fits your needs


var cnt = 0;
function stop() {
    if (prompt("type yes to stop") === "yes") {
        clearTO();
    } else if(cnt < i){
        cnt += 1;
        setTimeout(stop, 8010);
    };
}


stop();
var obj=[];

对于(var i=0;我能提供更多的细节吗?你是想用javascript还是chrome开发工具来实现这一点?出于所有的意图和目的,javascript是单线程的,循环操作是阻塞的。因此,如果你试图编写一个函数,允许你根据对全局状态的更改来中断迭代,而全局状态的更改是与您试图打破的迭代过程处于同一个时域,您必须将一些特定于您的实现的东西整合在一起。谢谢。我使用浏览器控制台、ctr+shift+j和粘贴代码运行它,您能帮我一个代码停止或退出该脚本吗?谢谢。但我不明白您的意思,我正在运行我需要另一个代码来停止它,或者退出它。如果你想停止快速执行,只需将i更改为20。是的,这是非常正确的,我使用这个:“javascript:var i=20;”,但它仍然运行,亲爱的,但是当你想停止执行时?你必须执行代码,直到它停止。我正在检查它。看起来很复杂我改变了提示功能,使其更有用。我意识到使用
prompt
并不理想,但我只是想知道“是”是否正确prompt为您提供了所需的行为类型。非常感谢。这正是我所需要的,亲爱的!我的朋友,它不会停止alert Box(警报框)很乐意提供帮助。从概念上讲,我认为重要的一点是您要了解初始循环在不到毫秒的时间内完成。
setTimeout
是一个异步操作,因此循环不会等待为了让它运行这个函数,它几乎是说“以后在我不执行阻塞操作时做这些事情”,然后跳过它。
var obj = [];

for(var i=0;i<20;i++) {
    (function (i) {
        obj.push(setTimeout(function () {
            {
                scrollBy(1500, 999999);
            }
        }, 8000 * i));
    }(i));
}

obj.push(setTimeout(function () {
    alert('Finish--------------!');
}, 8000 * (i)));

// when this function is called it will loop over the timeout objects
// you created in the above loop and clear them
function clearTO() {
    var i;
    for (i = 0; i < obj.length; i += 1) {
        clearTimeout(obj[i]);
    }
}

// if typing 'yes' in the prompt gives you the behavior 
// you're looking for replace this timeout function with something more dynamic that fits your needs


var cnt = 0;
function stop() {
    if (prompt("type yes to stop") === "yes") {
        clearTO();
    } else if(cnt < i){
        cnt += 1;
        setTimeout(stop, 8010);
    };
}


stop();