Невозможно щелкнуть эту гиперссылку с помощью Greasemonkey

У меня есть кнопка (гиперссылка) с эквивалентным HTML-кодом:

<span title="Enroll in Classes" class="SSSBUTTON_CONFIRMLINK">
<a class="SSSBUTTON_CONFIRMLINK" href="javascript:submitAction_win0(document.win0,'DERIVED_REGFRM1_LINK_ADD_ENRL$118$');" tabindex="202" ptlinktgt="pt_peoplecode" id="DERIVED_REGFRM1_LINK_ADD_ENRL$118$" name="DERIVED_REGFRM1_LINK_ADD_ENRL$118$">Proceed to Step 2 of 3</a>
</span>

Я хочу нажать кнопку через 10 секунд после загрузки страницы и использую следующий код:

// ==UserScript==
// @name        Add to cart
// @namespace   Class
// @description Script to add to cart
// @include     http://go.oasis.com/add/?STRM=2141
// @version     1
// @grant       none
// ==/UserScript==

setInterval (clickOnProceedButton, 10 * 1000)

function clickOnProceedButton () {
    var targSubmit  = $("#DERIVED_REGFRM1_LINK_ADD_ENRL$118$");
    var clickEvent  = document.createEvent ('MouseEvents');
    clickEvent.initEvent ('click', true, true);
    targSubmit[0].dispatchEvent (clickEvent);
}

Приведенный выше скрипт не работает и не нажимает кнопку. Может кто-нибудь указать, что здесь не так, пожалуйста?

РЕДАКТИРОВАТЬ: я получаю следующую ошибку в консоли

ERROR: Execution of script 'Add to cart' failed! Object [object global] has no method 'clickOnProceedButton'
TypeError: Object [object global] has no method 'clickOnProceedButton'
    at Object.eval (unknown source)), 25:14)
    at Object.eval (unknown source)), 27:4)
    at ag (unknown source), 190:4)
    at K (unknown source), 190:46)
    at o (unknown source), 456:2)
    at U (unknown source), 460:85)
    at R (unknown source), 229:40)

Заранее спасибо!


person Rajath    schedule 14.01.2014    source источник
comment
Думаю, тебе нужно сбежать $, так что попробуй var targSubmit = $("#DERIVED_REGFRM1_LINK_ADD_ENRL\\$118\\$");   -  person Satpal    schedule 14.01.2014
comment
@Satpal - Извините, не работает.   -  person Rajath    schedule 14.01.2014


Ответы (2)


Отлично работает в Google Chrome, но не работает в IE8.

JSFiddle

HTML:

<a  href="https://google.com"  id="DERIVED_REGFRM1_LINK_ADD_ENRL$118$" >Proceed to Step 2 of 3</a>

JS:

function clickOnProceedButton () {
var targSubmit  =  document.getElementById("DERIVED_REGFRM1_LINK_ADD_ENRL$118$");
var clickEvent  = document.createEvent('MouseEvents');
clickEvent.initEvent ('click', true, true);
targSubmit.dispatchEvent(clickEvent);

}

может помочь вам.

person Simpal Kumar    schedule 14.01.2014
comment
Это тоже не работает! Не удалось даже вызвать всплывающее окно с предупреждением. - person Rajath; 15.01.2014
comment
в каком браузере вы используете..? - person Simpal Kumar; 15.01.2014
comment
Fire Fox. Но попробовал это и с Chrome с расширением Tampermonkey. - person Rajath; 15.01.2014

setInterval(clickOnProceedButton, 10 * 1000);
function clickOnProceedButton() {
    var link = document.getElementById("DERIVED_REGFRM1_LINK_ADD_ENRL$118$");
    if(link) {
        link.click();
    }
}

Демо

person zanetu    schedule 15.01.2014
comment
Кажется, что document.getElementById() ничего не получает. Таким образом, действие щелчка не происходит. Ваша демонстрация работает нормально. - person Rajath; 16.01.2014