1

我是 3 个网站的管理员,我的工作是删除不需要的项目,通常单击标有“删除”的每个项目。我想自动化这个过程。尝试使用一些自动化程序(宏记录器),但它们是静态的。

我不是 Greasemonkey 编码器,如果有人能给我一个关于从哪里开始的想法,我将不胜感激,

网址模式:

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

我想在任何有class="delete".

每个页面包含 20 个链接。

单击删除链接时,页面不会刷新,jQuery。

4

2 回答 2

2
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 控制台中运行类似上述的简单脚本,或将其设为书签。

于 2013-06-05T14:37:24.907 回答
0

另请参阅“如何让 Greasemonkey 一个一个地点击大量链接?” .

由于每个“删除”按钮都会打开一个新页面,因此直接单击将从当前页面导航。因此,请改为打开<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 回答