我使用javascript在网站中创建一些自动化操作。我知道当我们点击刷新按钮时会重置chrome控制台,所以我试图通过Tampermonkey来管理它,这样脚本就可以从chrome控制台单独运行。
但我的问题仍然存在,当重新加载页面时,tampermonkey用户脚本仍会重置。你能帮我解决这些问题吗?非常感谢! p / s我是这个编码主题的业余爱好者所以如果你们能帮我一把,我们将不胜感激:)
我的脚本的一部分如下所示:
var $balance = $("#balance"),
$statusBar = $(".progress #banner");
function getStatus() {
var a = $statusBar.text();
if (hasSubString(a, "Rolling in")) return "waiting";
if (hasSubString(a, "***ROLLING***")) return "rolling";
if (hasSubString(a, "rolled")) {
var b = parseInt(a.split("rolled")[1]);
return lastRollColor = getColor(b), "rolled"
}
return "unknown"
}
function getBalance() {
return parseInt($balance.text())
}
答案 0 :(得分:0)
重新加载页面时,TamperMonkey脚本确实也会重置。但是,您可以在重新加载之间保存状态,以便脚本可以在停止的位置继续。
您可以使用GM_getValue
和GM_setValue
函数将数据存储在某个Tampermonkey数据存储中,以便下次运行脚本时可用。请注意,您需要使用@grant
标头来使用这些功能。
例如,以下脚本在重新加载之间保留counter
的值:
// ==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();
}
})();
答案 1 :(得分:0)
您可以尝试将要保存的内容添加到页面的localStorage中,只要需要保存的内容,就可以从localStorage中获取它
有2条命令可以这样做:
1. localStorage.setItem(keyName,keyValue);
2. localStorage.getItem(keyName);
有关更多信息,请检查以下2个链接: