У меня есть два разных скрипта. В конце одного он открывает новую веб-страницу, которая запускает другой сценарий, а затем ожидает, пока этот сценарий установит значение true, чтобы позволить первому сценарию открыть другую страницу.
Это сценарий для функции, вызываемой в конце первого сценария. Он ожидает, пока значение флага continueValue не будет установлено в значение true. Консоль снова и снова отображает сообщение «check flag», подразумевая, что другой сценарий не меняет значение на true.
function checkFlag() {
console.log("Checking flag");
if(GM_getValue("continueValue") === false) {
window.setTimeout(checkFlag, 2000); /* this checks the flag every 3000 milliseconds*/
} else {
//--- Opens the next cove
if (!(currentCoveNum = -1)) {
window.open(coveLinks[currentCoveNum + 1],"_self");
}
}
}
В конце следующего скрипта выполняется следующий код:
//--- If the text "Next Creature" exists on the page, click next creature button
if ((document.documentElement.textContent || document.documentElement.innerText).indexOf('Next Creature') > -1) {
window.location.href = nextCreatureLink[0].href;
//--- Otherwise set the continue value to true to allow Super Auto Feed, Open Coves to open the next cove
} else {
GM_setValue("continueValue", true);
console.log("continueValue is "+GM_getValue("continueValue"));
setTimeout(function() {
window.close();
}, (2 * 1000));
}
Проблема в том, что когда этот сценарий достигает сообщения «continueValue is», он отображает истину, подразумевая, что другой сценарий должен открыть следующую страницу, но это не так. Он просто продолжает проверять, становится ли флаг истинным.
Мне интересно, может быть, getValue и setValue не работают между скриптами? Или, может быть, что-то с циклом проверки того, что флаг стал истинным, не так.
Если бы кто-то мог просветить меня относительно того, где мой сценарий неправильный, я был бы чрезвычайно велик.