I'm attempting to create a greasemonkey script that will automatically poke (well, repoke) people on facebook. However, it is only the specific people I designate. This is easy to do as I can display the HTML that displays the poke using their specific uid using this:
document.getElementById("poke_uidhere").innerHTML;
This yields the code/link/ajax to repoke them:
<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>
Note that I again replaced the uid to maintain anonymity(or however that's spelled).
So I can see that when I poke them back I am following
<a ajaxify="/ajax/poke_dialog.php?uid=uidhere&pokeback=1" rel="dialog-post">Poke Back</a>
However, when I used this code:
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();
It does not click at all. It actually stalls here because I added an alert() after it and the alert never came up.
I gave up this method and began to simply try to use:
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);
This didn't work either.
I think the problem with the first idea may be that the HTML somehow resets because when I review the source after the script's completion, the ID tag I added is no longer there. (so the click doesn't work? :/)
I was just guessing with the second method so idk why that didn't wor开发者_如何转开发k. For the record I tried both GET and POST methods.
I am looking for any and all solutions to this.
The only other bit of information I can think of is that this is from the homepage (http://facebook.com) and I think its a different code on different page.
Try something like this:
var src = document.getElementById("poke_uidhere").getElementsByTagName('a')[1].src,
iframe = document.createElement('iframe');
iframe.src = src;
iframe.style.display = 'none';
document.appendChild(iframe);
You can add a load event to remove it when done, but I don't think you need to
精彩评论