2013-06-05 99 views
1

我是3個網站的管理員,我的工作是刪除不需要的項目,通常點擊標記爲「刪除」的每個項目。我想讓這個過程自動化。試圖使用一些自動化程序(宏記錄器),但它們是靜態的。用Greasemonkey腳本在一頁中點擊很多鏈接?

我不是一個Greasemonkey的編碼器和感激,如果任何人都可以給我從哪裏開始的想法,

URL模式:

<a class="delete" href="http://www.domain.com/#!/item/delete/{id}">Delete</a> 

我想點擊刪除鏈接,只要有一個class="delete"

每個頁面都包含20個鏈接。

當用戶點擊刪除鏈接時,頁面不刷新,jQuery的。

+0

反向d近距離投票。這個問題將更接近於「如何使Greasemonkey單擊一個點擊大量鏈接?」](http://stackoverflow.com/q/10714395/331508),但它不完全相同。 –

+0

Meta Discussion在http://meta.stackexchange.com/questions/183196/i-got-a-question-closed-by-mistake-please-help-me-reopen-it-if-you-agree。 –

+0

@BrockAdams我真的在發佈之前找到了答案,但沒有找到任何答案。 – user2455524

回答

1
var all = document.getElementsByClassName("delete"); 
for(var i=0; i<all.length; i++) { 
    var deleteUrl = all[i].href; 
    var ifr = document.createElement("IFRAME"); 
    document.body.appendChild(ifr); 
    ifr.src = deleteUrl; 
} 

你可以在瀏覽器的JavaScript控制檯運行像上面的一個簡單的腳本或使它成爲一個書籤。

+0

爲iframe的想法+1。代碼有點脆弱/危險。它至少應該檢查節點是否是鏈接。也許使用'document.querySelectorAll()'。 –

0

還參見"How to make Greasemonkey click lots of links one by one?"

由於每個「刪除」按鈕,將打開一個新頁面,一個直接的點擊會從當前頁面導航。因此,請打開 s中的鏈接。

使用jQuery,使這一切更簡單,更可靠。這裏有完整的腳本 ...

對於一個簡單的靜態頁面:

// ==UserScript== 
// @name  _Fire lots of delete buttons 
// @include http://YOUR_SERVER.COM/YOUR_PATH/* 
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js 
// @grant GM_addStyle 
// ==/UserScript== 

var deleteLinks = $("a.delete"); 

deleteLinks.each (function() { 
    if (this.href) { 
     $("body").append (
      '<iframe class="gmDelIfr" src="' + this.href + '"></iframe>' 
     ); 
    } 
}); 

//-- Use whatever CSS you desire. Like `display: none;`, for example. 
GM_addStyle ("         \ 
    iframe.gmDelIfr {       \ 
     width:     80%;   \ 
     height:     2em;   \ 
     margin:     0;    \ 
     padding:    0;    \ 
    }           \ 
"); 


對於AJAX驅動頁:(也適用於靜態頁)

// ==UserScript== 
// @name  _Fire lots of delete buttons 
// @include http://YOUR_SERVER.COM/YOUR_PATH/* 
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js 
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js 
// @grant GM_addStyle 
// ==/UserScript== 

waitForKeyElements ("a.delete", clickDeleteLink); 

function clickDeleteLink (jNode) { 
    var thisHref = jNode[0].href; 
    if (thisHref) { 
     $("body").append (
      '<iframe class="gmDelIfr" src="' + thisHref + '"></iframe>' 
     ); 
    } 
} 

//-- Use whatever CSS you desire. Like `display: none;`, for example. 
GM_addStyle ("         \ 
    iframe.gmDelIfr {       \ 
     width:     80%;   \ 
     height:     2em;   \ 
     margin:     0;    \ 
     padding:    0;    \ 
    }           \ 
"); 
+0

謝謝,它似乎並沒有工作,我已經更新了我的問題(網址模式),因爲每個網址以唯一ID結尾,點擊頁面不刷新(操作使用Ajax提交)。我很樂意向您展示它自己的頁面,但它位於受保護的管理區域內,無法公開查看。 Greasemonkey似乎是一個好主意,但如果你能想到另一種方法,那將是值得讚賞的。 – user2455524

+0

事前說明AJAX行爲,它使世界上的所有差異。現在,一個非常重要的問題。當你點擊一個鏈接時,頁面如何變化?在HTML片段之前和之後發佈。 (如果可能,在HTML期間)。這是因爲您可能需要限制點擊次數。 –

+0

單擊刪除標籤後,從數據庫中刪除後,標籤將更改爲已刪除而不刷新頁面。手動頁面刷新後,該項目從頁面中消失。 – user2455524

相關問題