2016-03-28 165 views
0

我使用javascript在网站中创建一些自动化操作。我知道当我们点击刷新按钮时,Chrome控制台会重置,所以我试图通过Tampermonkey来管理它,因此脚本可以从Chrome控制台单独运行。如何在不重置篡改密码的情况下重新加载页面?

但我的问题仍然存在,当页面重新加载tampermonkey userscript仍然复位。你能帮我解决这些问题吗?非常感谢! 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

的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(); 
    } 
})(); 
相关问题