如何通过JavaScript强制点击Facebook.com上的所有“赞”链接?

时间:2013-07-18 05:09:57

标签: javascript jquery facebook

如果我在http://facebook.com上,我使用Firebug或其他控制台直接在网站上运行JavaScript ...是否可以强制链接触发相应的POSThttps://www.facebook.com/ajax/ufi/like.php?我尝试过以下快速而肮脏的方法:

var s = document.createElement("script");
s.src = "http://code.jquery.com/jquery-latest.min.js";
s.type = "text/javascript";

document.getElementsByTagName("head")[0].appendChild(s);

$(".UFILikeLink").click();

......但是,当然,它不起作用。我想知道我可以用普通JS或其他方法来强制该事件。谢谢!

2 个答案:

答案 0 :(得分:0)

var s = document.createElement("script");
s.src = "http://code.jquery.com/jquery-latest.min.js";
s.type = "text/javascript";
document.getElementsByTagName("body")[0].appendChild(s)
console.log($)
s.onreadystatechange = function() {console.log($)};
s.onload = function() { console.log($)};

请注意,console.log($)抛出一个未定义的,我认为在你添加调用$()时没有加载jQuery。click()。

所以你等待脚本加载并做好准备。     s.onreadystatechange = function(){console.log($)};     s.onload = function(){console.log($)};

答案 1 :(得分:0)

您的代码无效,因为$(“。UFILikeLink”)返回一个列表(假设加载了jQuery)。您可能需要点击每个单独的元素(如按钮)

工作解决方案:

$(".UFILikeLink[title^='Like this']").each( function (index) { this.click(); });

最好在点击之前添加一些延迟(比如说5秒)并改变它的颜色以便我们识别它;)也可以将它保持在视野中。

$(".UFILikeLink[title^='Like this']").each( function (i) { 
    setTimeout(function(e) { 
        e.style.color = '#FF0000'; 
        e.click(); 
        e.scrollIntoViewIfNeeded(); 
    }.bind(null, this), i*5000); 
});

享受!