unsafeWindow.location.href = linktodo + linkequipeq + accesKey;
unsafeWindow.location.href = linktodo + linkjednoraz + accesKey;
脚本首先跳到页面。使用setTimeout没有帮助。我正在使用:
// @run-at document-end
仍然没有工作,我尝试使用addEventListener wit parametr'load'但没有(我想我需要通过关闭窗口来“清理”eventlistener? - 尝试在第一次函数/窗口重定向完成后使用removeEventListener,失败)
是否可以在不打开和关闭新标签/弹出窗口的情况下执行此操作? 这样的脚本会在非活动选项卡中运行吗? 有人可以发布一些做它或教程的例子我会单独学习吗?
P.S 对于一些解释,这些子页面将填充一些设备,然后获得一些现金并去寻求。 linktodo是主机名,linkequipeq是路径名,而accessKey是在网页中构建的一个secuirty,在重新加载后没有做任何事情(我使用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);
答案 0 :(得分:0)
Greasemonkey脚本与普通脚本完全相同,除非页面已加载,否则它们不会运行
在加载此脚本的任何页面上,此脚本将向具有ID='autowypki'
当该事件被触发时,脚本会将页面设置为linktodo + linkequipeq + accesKey
中的equip
这就是所有这个脚本都会做的
无处调用函数doquest
和zlomak
,所以他们只是在这个脚本中骑行
函数jednoraz
设置为在超时5秒后调用,但到那时equip
已经加载了一个新页面,因此,jednoraz
实际上不会被调用为页面它已开启不再加载
但是,如果在equip
加载的页面中触发了相同的点击事件,则可能会调用 jednoraz
- 然后页面linktodo + linkjednoraz + accesKey
将被加载...我也许说,因为我不能100%确定如果它有效地将页面设置为当前页面,equip
将执行什么功能 - 即如果这会导致页面加载,那么{{1不会被调用,因为超时可能永远不会在页面重新加载时触发