如果我在http://facebook.com上,我使用Firebug或其他控制台直接在网站上运行JavaScript ...是否可以强制链接触发相应的POST
到https://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或其他方法来强制该事件。谢谢!
答案 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);
});
享受!