如何在不重置tampermonkey脚本的情况下重新加载页面?

时间:2016-03-28 01:40:07

标签: javascript jquery tampermonkey

我使用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())
}

2 个答案:

答案 0 :(得分:0)

重新加载页面时,TamperMonkey脚本确实也会重置。但是,您可以在重新加载之间保存状态,以便脚本可以在停止的位置继续。

您可以使用GM_getValueGM_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个链接:

deadlocks

race conditions