在chrome控制台重新加载后保持Javascript迭代

Keep the Javascript Iteration after reload in chrome console

本文关键字:迭代 Javascript 加载 控制台 chrome 新加载      更新时间:2023-09-26

我正在进行迭代,在迭代的最后一个代码中,我放入了一个将重新加载页面的代码。

如何保持JavaScript迭代运行后重新加载和继续状态?

for(i=0;i<5;i++) {
    document.reload();
}

运行以上代码后,代码停止并重新加载控制台。

上面的代码可能不工作,但我希望它解释我正在尝试做什么

您需要将状态存储在不重置的地方。localStorage为理想溶液。

var i = parseInt(localStorage['i'])||0;
localStorage['i'] = i+1;
// do some stuff
// and reload if you want

您可以使用TamperMonkey来完成此操作。TamperMonkey脚本在重新加载页面时也会被重置。但是,由于它们能够存储数据并在每次页面加载时运行,因此可以实现跨页面重新加载持续存在的行为。下面是一个例子:

// ==UserScript==
// @name         HttpBin reload
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Reload something a couple of times
// @author       Sjoerd
// @match        https://httpbin.org/get
// @grant        GM_setValue
// @grant        GM_getValue
// ==/UserScript==
(function() {
    'use strict';
    var i = GM_getValue('counter', 0);
    GM_setValue('counter', i + 1);
    if (i < 5) {
        location.reload();
    }
})();

GM_getValueGM_setValue函数将数据存储在某个Tampermonkey数据存储中,以便在下次脚本运行时可用。注意,您需要使用@grant头文件来使用这些函数。

获取计数器的值并加1。然后,如果计数器小于5,则重新加载该页。这将重新加载页面五次,就像在您的示例中一样。

运行一次后,Tampermonkey数据存储中的counter值被设置为6,脚本将不再重新加载。如果你想重新加载页面五次,你必须编写一些程序来重置计数器。