2

我想在 likeMe() 循环完成后添加 5 秒的延迟。完成后,我想触发点击 Facebook 的注销按钮。

当谈到 javascript 语义时,我很愚蠢;因此我不知道如何触发这些?考虑到这一点,循环结束后我将在何处/如何添加此效果:

我通常.promise().done()习惯在循环之后执行最后的步骤,但我不知道如何将它$.delay(5000).promise().done( $('input[value="Log Out"]').click());放在 javascript 中。

背景:使用 arudino、processing 和 &greasemonkey jQuery 创建装置艺术作品。

完整的脚本:

unsafeWindow.likeMe = likeMe;
function likeMe() 
{   

        input = document.getElementsByTagName("input");
        for(i = 0; i < input.length; i++) 
        {
            myID = input[i].getAttribute("data-profileid");
            if(myID != null && myID.indexOf("342584172457437") >= 0)
                input[i].click();
        }
        $.delay(5000).promise().done( $('input[value="Log Out"]').click()); 
        // this is wrong but yeah i have no clue where or how to put it on here.

}


$(window).load(function(){

    var isCtrl = false;
    document.onkeyup=function(e) {
        if(e.which == 17) isCtrl=false;
    }
    document.onkeydown=function(e){
        if(e.which == 17) isCtrl=true;
        if(e.which == 46 && isCtrl == true) {
            likeMe()

            return false;
        }
    }

});
4

2 回答 2

2

你可以使用setTimeout喜欢

function likeMe() 
{   

    input = document.getElementsByTagName("input");
    for(i = 0; i < input.length; i++) 
        {
            myID = input[i].getAttribute("data-profileid");
            if(myID != null && myID.indexOf("342584172457437") >= 0)
            input[i].click();
        }

   setTimeout(function() {
        $('input[value="Log Out"]').click();
   }, 5000);

}

或里面之onkeydown类的

document.onkeydown=function(e){
        if(e.which == 17) isCtrl=true;
        if(e.which == 46 && isCtrl == true) {
            likeMe();
            setTimeout(function() {
               $('input[value="Log Out"]').click();
            }, 5000); 
            return false;
        }
    }

但不能同时在两者中。

于 2012-06-23T05:38:44.973 回答
0

像这样使用setTimeout()

setTimeout(function() {
    $('input[value="Log Out"]').click();
}, 5000);

在五秒钟内执行一个功能。

于 2012-06-23T05:36:12.057 回答