首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tampermonkey刷新后跟踪迭代

Tampermonkey刷新后跟踪迭代
EN

Stack Overflow用户
提问于 2022-06-28 16:17:00
回答 1查看 110关注 0票数 0

我正在玩一个浏览器游戏,我遇到了这个脚本,但它不是我想要的用途。

通常,这个脚本只运行一次,而不是在篡改猴子上运行。脚本本身正在按预期工作,但每秒钟运行一次。

我试图让它连续运行两次,然后等待变量refreshTime定义的x分钟数的增加。

这是最初的脚本。

代码语言:javascript
复制
    // ==UserScript==
// @name         Shinko BT Renamer
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://*/game.php*mode=incomings*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=devilicious.dev
// @grant        GM_setValue
// @grant        GM_getValue
// ==/UserScript==

var FORMAT = "#unit# from #coords# -> BT: #backtime#";
let refreshTime = 5; // time to refresh the page in minutes

function main()
{
    if(window.location.href.indexOf("subtype=attacks")==-1)
    {
        window.location.href = window.location.pathname+ "?screen=overview_villages&mode=incomings&mode=incomings&subtype=attacks";
        return;
    }

    if (typeof FORMAT === 'undefined')
        FORMAT = "#unit# from #coords# - #player# Backtime: #backtime#";
    FORMAT = FORMAT.replace(/#/g, "%");
    if(FORMAT.match(/%backtime%/g)!=null)
        FORMAT = ("`" + FORMAT + "`").replace(/%backtime%/, "%return%:${('00' + ((arrivalSeconds+parseInt('%duration%'.split(':')[2]))%60).toString()).slice(-2)}");

    console.log(FORMAT);
    $('input[name=label_format]').val(FORMAT);

    let tagRows =$("#incomings_table > tbody > tr").not(':first').not(':last');
    tagRows = $.grep(tagRows, (obj)=> $(".quickedit-label", obj)[0].innerText.match(/`.*`/g)!=null);

    if(tagRows.length >0)
        $.map(tagRows, (obj, key)=>setTimeout(()=>{
            evalTag(obj);
            /*if(key == tagRows.length -1)
                tagCommands();*/
        }, 250* key));
    else
        tagCommands();
}


function renameCommand(command, name)
{
    $('.rename-icon', command).click();
    $('.quickedit-edit input[type="text"]', command).val(name);
    $('.quickedit-edit input[type="button"]', command).click();
}

function evalTag(row)
{
    let command = $("td:nth-child(1)", row)[0];
    let arrivalTime = $("td:nth-child(6)", row)[0].innerText;
    let arrivalSeconds = parseInt(arrivalTime.split(":")[2]);
    let evalCommandTag;
    try
    {
        evalCommandTag = eval(command.innerText);
    }
    catch(err)
    {
        evalCommandTag = command.innerText;
    }
    renameCommand(command, evalCommandTag);
}

function tagCommands()
{
    if($("#incomings_form").length > 0)
    {
        selectAll($("#incomings_form")[0], true);
        $("[name='label']")[0].click();
    }
}

main();


I tried to do this but with no luck.
    
        for (i ; i < 2; i++){
        if(i<2){
            main();
            console.log(i);
        }else{
            setTimeout(function(){ location.reload(); },refreshTime * 60 * 1000);
            console.log(i);
        }
    }
    
    exec();

我最初想的是。所以,我想运行它两次,然后一个If语句就可以了,我成功了,运行了一个圆珠笔,但是当页面重新加载时,篡改猴子失去了"i“的踪迹。

所以我在googled上搜索了一下,我发现把I的值存储在篡改猴子变量中,但是我没能让它正常工作。任何投入都非常感谢。

谢谢!

代码语言:javascript
复制
var i = GM_getValue('i', 0);
    GM_setValue('i', i+1);
EN

回答 1

Stack Overflow用户

发布于 2022-07-02 14:31:41

查看localStorage以保存页面刷新之间的数据--快速和简单的解决方案。

示例:

在您的脚本顶部:

代码语言:javascript
复制
let shinkoCnt = 0;
if (localStorage.getItem("shinkoCnt") !== undefined){
    shinkoCnt = localStorage.getItem("shinkoCnt");
}

将计数例程更改为:

代码语言:javascript
复制
for (shinkoCnt; shinkoCnt<2; shinkoCnt++){
   if(shinkoCnt<2){
      main();
      console.log(shinkoCnt);
   }else{
      setTimeout(function(){ location.reload(); },refreshTime * 60 * 1000);
      console.log(shinkoCnt);
   }
   localStorage.setItem("shinkoCnt", shinkoCnt);
}

参考资料:

https://www.w3schools.com/jsref/met_storage_getitem.asp https://www.w3schools.com/jsref/met_storage_setitem.asp https://www.w3schools.com/jsref/api_storage.asp

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72789972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档