Есть ли способ нажать ссылку только один раз, используя greasemonkey? - PullRequest
0 голосов
/ 16 июня 2011

Можно ли щелкнуть ссылку только один раз с помощью Greasemonkey?Сценарий (например):

var evt = document.createEvent ("HTMLEvents");
evt.initEvent ("click", true, true);
document.getElementById('DailyConsumtionTrigger').dispatchEvent(evt);

1 Ответ

0 голосов
/ 16 июня 2011

Если щелчок основан только на времени (например, каждые 12 часов), то будет работать что-то вроде этого:

var intervalInMillisecs = 12 * 3600 * 1000; //-- 12 hours
var currentDateTime     = new Date ();
currentDateTime         = currentDateTime.valueOf ();   //-- Raw mS

//--- Get last click time, if it was set.
var lastClickTime       = GM_getValue ('lastClickTime_DCT');
if (!lastClickTime)
    lastClickTime       = 0;


//--- If this is the first ever run or the interval has past, click the button.
if ( currentDateTime - lastClickTime  >  intervalInMillisecs )
{
    GM_setValue ('lastClickTime_DCT', currentDateTime);

    var evt             = document.createEvent ("HTMLEvents");
    evt.initEvent ("click", true, true);
    document.getElementById ('DailyConsumtionTrigger').dispatchEvent (evt);
}

Обратите внимание, что GM_setValue хранит информацию полупостоянно для каждого сценария.

Если щелчок имеет состояние или событие на основе (EG Только щелчок, когда датчик X приближается к нулю), то вместо этого проверьте соответствующее условие.


ВАЖНО:

Вышесказанное основано на поставленном вопросе «щелкнуть только один раз».Предполагается, что пользователь будет часто просматривать целевой (игровой) сайт и не хочет чрезмерно активировать целевую кнопку при загрузке страницы.

Для повторного запуска используйте setInterval () ;

...