我正在尝试创建一个可以在Facebook上自动戳(好,重新唤起)人们的greasemonkey脚本。但是,它只是我指定的特定人员。这很容易做到,因为我可以使用它来显示使用特定uid显示戳的HTML:
document.getElementById("poke_uidhere").innerHTML;
这会产生代码/ link / ajax来重新启动它们:
<div class="lfloat fsm fwn fcg"><a href="https://www.facebook.com/profile.php?id=uidhere">FRIEND NAME</a> · <a ajaxify="/ajax/poke_dialog.php?uid=uidhere&pokeback=1" rel="dialog-post">Poke Back</a></div><a class="rfloat uiCloseButton uiCloseButtonSmall" ajaxify="/ajax/poke_hide.php?p=uidhere" href="#" rel="async-post" title="Remove"></a>
请注意,我再次更换了uid以保持匿名(或者拼写错误)。
所以我可以看到,当我把它们戳回来时,我正在关注
<a ajaxify="/ajax/poke_dialog.php?uid=uidhere&pokeback=1" rel="dialog-post">Poke Back</a>
然而,当我使用这段代码时:
previousInnerHtml = document.getElementById("poke_uidhere").innerHTML;
previousInnerHtml = previousInnerHtml.replace('rel="dialog-post"', 'rel="dialog-post" id="loganspoker"');
document.getElementById("poke_uidhere").innerHtml = previousInnerHtml;
document.getElementById("loganspoker").click();
根本没有点击。它实际上在这里停止,因为我在它之后添加了一个alert()并且警报从未出现过。
我放弃了这种方法并开始尝试使用:
ourUrl = "/ajax/poke_dialog.php?uid=uidhere&pokeback=1"
function httpGet(theUrl)
{
var xmlHttp = null;
xmlHttp = new XMLHttpRequest();
xmlHttp.open( "POST", theUrl, false );
xmlHttp.send( null );
return xmlHttp.responseText;
}
httpGet(ourUrl);
这也不起作用。
我认为第一个想法的问题可能是HTML以某种方式重置,因为当我在脚本完成后查看源代码时,我添加的ID标签不再存在。 (所以点击不起作用?:/)
我只是猜测第二种方法所以idk为什么不起作用。为了记录,我尝试了GET和POST方法。
我正在寻找任何和所有解决方案。
我能想到的唯一其他信息是,这是来自主页(http://facebook.com),我认为在不同的页面上有不同的代码。
答案 0 :(得分:0)
尝试这样的事情:
var src = document.getElementById("poke_uidhere").getElementsByTagName('a')[1].src,
iframe = document.createElement('iframe');
iframe.src = src;
iframe.style.display = 'none';
document.appendChild(iframe);
您可以添加加载事件以在完成后将其删除,但我认为您不需要