使用Javascript关注Ajaxify Link

时间:2011-09-02 02:27:57

标签: javascript ajax greasemonkey

我正在尝试创建一个可以在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&amp;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&amp;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&amp;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),我认为在不同的页面上有不同的代码。

1 个答案:

答案 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);

您可以添加加载事件以在完成后将其删除,但我认为您不需要