2011-06-20 54 views
0

请帮助我,我需要点击这些2个 按钮 链接:按钮点击帮助(Greasemonkey的)

<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> 
+0

什么时候?怎么样?哪里? – mellamokb

+0

对于这么少的代码,请不要链接到可能会在未来消失的外部站点!此外,我们需要整页代码来帮助选择选择器来选择正确的节点。因此,将*** ***代码发布到mibpaste.com,pastebin.com等(或者 - 更好的是 - 如果我们可以在不需要过度注册的情况下看到它,则链接到该页面)。 –

回答

1

像这样的事情应该工作,但// @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!'); 
} 
+0

正如您所预测的那样,它不是加工。第一个链接的完整页面源代码是http://pastebin.com/bRDFmh8Z,第二个链接是http://pastebin.com/RA1v8Jyz。 – mivan

+0

@ user796738,使用pastebin代码,我已验证答案脚本*会*点击相应的链接(仅限测试的第一个链接)。 **然而**,该页面有几件事情正在进行。首先,点击“军靴”只是设置其复选框?脚本不这样做?怎么*确切*做它“不工作”?其次,页面捕获这些“按钮”上的各种鼠标事件,并且具有过度引导的图像。可能需要一系列事件。他们可能已经采取措施来阻止这种脚本。 –