Справка по нажатию кнопки (Greasemonkey) - PullRequest
0 голосов
/ 21 июня 2011

Пожалуйста, помогите мне, мне нужно нажать на эти 2 кнопки ссылки:

<li class="booster" id="b_10">
    <img alt="" src="http://www.erepublik.com/images/parts/pixel.gif" class="overlay" />
    <div class="top">
        <strong><a href="javascript:;">Army boots</a></strong>
        <big>0</big>
    </div>
    <img src="http://static.erepublik.com/uploads/boosters/10_77x77.png" alt="" />
    <em class="give like10"></em>
</li>

И

<span class="tip" id="tip_534689">
    <a class="workTrigger" companyId="534689" href="javascript:;">
        <img src="http://www.erepublik.com/images/modules/myland/tip_icons/work.png" alt="" />
    </a>
</span>

1 Ответ

1 голос
/ 21 июня 2011

Нечто подобное должно работать, но директива // @include должна быть более конкретной, если это возможно, и селекторам jQuery может потребоваться информация, которая не была указана в вопросе.

Искусство заключается в выборе селекторов, чтобы получить ссылку / кнопку / узел, который вы ищете. Для достижения наилучших результатов это часто требует просмотра кода всей страницы.

// ==UserScript==
// @name            _Generic Link clicker
// @include         http://www.erepublik.com/*
// @require         http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js
// ==/UserScript==

var topBoosterLink  = $("li.booster > div.top > strong > a:first");
var workTipLink     = $("span.tip > a.workTrigger:first");

clickJ_Node (topBoosterLink);
clickJ_Node (workTipLink);


function clickJ_Node (jNode)
{
    if (jNode && jNode.length)
    {
        var clickEvent  = document.createEvent ("HTMLEvents");
        clickEvent.initEvent ("click", true, true);
        jNode[0].dispatchEvent (clickEvent);
    }
    else
        GM_log ('No node found to click!');
}
...