1

私は 3 つの Web サイトの管理者であり、不要なアイテムを削除するのが私の仕事で、通常は「削除」というラベルの付いた各アイテムをクリックします。プロセスを自動化したい。いくつかの自動化プログラム (マクロ レコーダー) を使用しようとしましたが、それらは静的です。

私は Greasemonkey のコーダーではありません。どこから始めればよいか誰か教えていただければ幸いです。

URL パターン:

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

がある場所ならどこでも削除リンクをクリックしたいclass="delete"

各ページには 20 個のリンクが含まれています。

リンクの削除をクリックすると、ページが更新されない、jQuery.

4

2 に答える 2

0

「Greasemonkey にたくさんのリンクを 1 つずつクリックさせる方法は?」も参照してください。.

各「削除」ボタンは新しいページを開くため、単純なクリックで現在のページからナビゲートできます。<iframe>そのため、代わりに 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;              \
    }                                           \
" );
于 2013-06-05T15:01:43.627 に答える