创建一个Bookmarklet,单击一个页面上的多个按钮

时间:2013-09-11 08:35:01

标签: javascript jquery bookmarklet

我之前为网站创建了一个书签,勾选了页面上的多个复选框:

javascript:javascript:;$("input[name='unfollow[]']").attr({checked:true});

不幸的是,UI已经改变,而不是复选框,需要点击按钮。以下是其中一个按钮的HTML示例:

<button class="process mode-basic Unfollow" data-verb="unfollow">Unfollow</button>

这些按钮最多可以有100个。如何创建单击所有这些按钮的书签?是否有可能在每次点击之间建立延迟?

感谢。

2 个答案:

答案 0 :(得分:1)

$('button[data-verb="unfollow"]').on({
    click: function() {
        $('#result').append($(this).text() + ' was clicked<br/>');
    }
});

$('#unfollow-all').on({
    click: function() {
        $('button[data-verb="unfollow"]').each(function(index) {
            var el = $(this);
            setTimeout(function() {
                clickButton(el);
            }, 500 * index);
        });
    }
});

function clickButton(button) {
    button.click();
}

小提琴:http://jsfiddle.net/6AJNc/1/

答案 1 :(得分:1)

假设页面加载了jQuery,您可以点击每个页面之间的延迟:

(function(){
    var unfollowButtons = $('button.Unfollow');
    var index = unfollowButtons.length-1;
    unfollow();

    function unfollow(){
        if(index >= 0){
            $(unfollowButtons[index--]).click();
            setTimeout(unfollow, 500);
        }
    }
})();