Пожалуйста, имейте в виду, что я не знаю javascript.Я соединил это вместе с часами чтения и вопросом здесь и там.Я не программист и знаю немного HTML и CSS.
Я пытаюсь создать скрипт пользователя, который нажимает указанную кнопку на странице через определенные промежутки времени, пока не будет выполнено определенное условие, затем остановите цикл и нажмите другую кнопку.Благодаря некоторой помощи здесь я получил кусок кода, который делает именно то, что я хочу, когда вставляется в консоль Chrome или Firebug.
Однако, если я устанавливаю этот сценарий как расширение Chrome или сценарий Greasemonkey,Я получаю неопределенные ошибки.
var int = self.setInterval ("refresh ()", 4000);
function stop () {
// Stop the loop before joining server
int = window.clearInterval (int)
}
function join () {
// Click Join Server button
document.getElementsByClassName (
"base-button-arrow-almost-gigantic"
)[0].click ();
}
function refresh () {
// If current players < max, cancel loop and join server
var playersElement = document.getElementById ('server-info-players');
var players = playersElement.textContent;
var parts = players.split ("/");
var current = parseFloat (parts[0]);
var max = parseFloat (parts[1]);
if (current < max) {
stop ()
join ()
}
var refreshBtn = document.querySelector (
"div.serverguide-header-refresh-button div[type='reset'] a"
);
var clickEvent = document.createEvent ('MouseEvents');
clickEvent.initEvent ('click', true, true);
refreshBtn.dispatchEvent (clickEvent);
}
Если он вставлен прямо в консоль, он работает как положено, нажимая кнопку обновления до тех пор, пока условие не будет выполнено, затем нажимая кнопку присоединения.Установленный как пользовательский скрипт, я получаю следующее сообщение об ошибке как от Chrome, так и от Firebug:
Uncaught ReferenceError: refresh is not defined
(anonymous function)
Это просто продолжает возвращаться с интервалами в четыре секунды.
Есть ли что-то в пользовательских скриптах, которые я не делаюзнаете?Что я делаю не так?