2011-06-20 57 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代碼,我已驗證答案腳本*會*點擊相應的鏈接(僅限測試的第一個鏈接)。 **然而**,該頁面有幾件事情正在進行。首先,點擊「軍靴」只是設置其複選框?腳本不這樣做?怎麼*確切*做它「不工作」?其次,頁面捕獲這些「按鈕」上的各種鼠標事件,並且具有過度引導的圖像。可能需要一系列事件。他們可能已經採取措施來阻止這種腳本。 –