gpt4 book ai didi

javascript - Greasemonkey js 将进入子页面,一次又一次,等待

转载 作者:行者123 更新时间:2023-11-28 06:56:18 25 4
gpt4 key购买 nike

抱歉英语不好,也许是新手问题。我想编写一些自动化的脚本(在网页游戏中),我需要的一切就是进入子页面,然后进入下一个页面,等等。然后脚本需要等待特定时间并重复。我正在使用全局变量( bool 值),如果它是真的,我正在尝试做类似的事情:

unsafeWindow.location.href = linktodo + linkequipeq + accesKey;
unsafeWindow.location.href = linktodo + linkjednoraz + accesKey;

脚本会跳过第一个页面。使用 setTimeout 没有帮助。我正在使用:

// @run-at document-end

仍然不起作用,我尝试使用 addEventListener wit 参数“load”,但什么也没有(我想我需要通过关闭窗口来“清理”事件监听器? - 尝试在第一个函数/窗口重定向完成后使用removeEventListener,失败) .

是否可以在不打开和关闭新选项卡/弹出窗口的情况下执行此操作?像这样的脚本可以在非事件选项卡中工作吗?有人可以发布一些执行此操作的示例或教程吗?我将独自学习它?

P.s对于一些解释,这些子页面将填充一些设备,然后获得一些现金并进行任务。linktodo 是主机名,linkequipeq 是路径名,而 accesKey 是网页中内置的一些安全性,以便在重新加载后不执行某些操作(我使用 unsafeWindow 通过 GM 访问它)。

嗯,也许有人理解我:D

// @include     "site"
// @grant GM_addStyle
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_deleteValue
// @grant GM_listValues
// @grant GM_xmlhttpRequest
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @run-at document-end
var wypki = 0;
var cash = 0;
var czas = 0;
var autowypki = false;

var linkwypki = '?a=q';
var linksklep = '?a=town=';
var linkequipeq = '?a=equip';
var linkjednoraz = '?a=buyone';
var linkrealm;
var accesKey = unsafeWindow.accessKey;
var numbercash = document.getElementsByClassName('cash')[0].getElementsByClassName('panel');
var mynumbercash = numbercash[0];
var cash1 = (mynumbercash.innerHTML);
cash = cash1.slice(28, cash1.indexOf('PLN'));
cash = parseInt(cash.replace(/\s+/g, ''));

var linktodo = link.slice(0, link.indexOf('?a='));

function doquest() {
'use strict';
unsafeWindow.location.href = linktodo + linkwypki;
setTimeout(function () {
unsafeWindow.getElementById('start')[0].click();
}, 2000);

}
function zlomek() {
'use strict';

if (cash < 20000) {
unsafeWindow.location.href = linktodo + linksklep + accesKey;
}
}
function jednoraz() {
'use strict';
if (autowypki === true && cash > 20000) {
unsafeWindow.location.href = linktodo + linkjednoraz + accesKey;
}
}
function equip() {
'use strict';
unsafeWindow.location.href = linktodo + linkequipeq + accesKey;
}
/* --- Main ----*/
function autoQuest() {
'use strict';
autowypki = true;
equip();
setTimeout(jednoraz(),5000);
}
/* --- Main ----*/

if (a === linkwypki) {
var przyciskwypki = document.getElementsByTagName("form")[0].getElementsByTagName('div')[13];
przyciskwypki.innerHTML = przyciskwypki.innerHTML + '<input class="button" type="button" style="height: 20px; width: 110px;" id="autowypki" value=" Robimy wypki" />';
}
document.getElementById("autowypki").addEventListener("click", autoQuest, false);

最佳答案

Greasemonkey 脚本与普通脚本完全相同,除非加载页面,否则它们不会运行

在注入(inject)加载此脚本的任何页面上,此脚本都会向带有 ID='autowypki' 的元素添加点击事件监听器

当该事件被触发时,脚本将在函数 equip 中将页面设置为 linktodo + linkequipeq + accesKey

这就是这个脚本要做的全部事情

没有任何地方可以调用函数 doquestzlomak,因此它们只是在此脚本中随行

函数 jednoraz 设置为在 5 秒超时后调用,但此时 equip 已加载新页面,因此,jednoraz > 实际上不会被调用,因为它所在的页面不再加载

但是,如果在 equip 加载的页面中触发相同的点击事件,那么也许 jednoraz 将被调用 - 然后页面 linktodo + linkjednoraz + accesKey 将被加载...我说也许是,因为我不能 100% 确定如果 equip 有效地将页面设置为当前页面 - 即,如果这导致页面加载,则不会调用 jednoraz 因为随着页面重新加载,超时可能永远不会触发

关于javascript - Greasemonkey js 将进入子页面,一次又一次,等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32543489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com