Skip to content Skip to sidebar Skip to footer

Sending Text Cross Domain By Bookmarklet

I need a user to navigate to a certain page that has a certain div full of useful text. Then click my bookmarklet and send the text in that div back to my server, which is differe

Solution 1:

Generate a form (with DOM) and POST the data (you might want to target an iframe, but it will be fire and forget).

Solution 2:

Here is an example to post text to a remote server. And you can print javascript in the remote server if you want to change the page you have the Iframe on to say something like success. Or a popup saying it finished. On the remote server you can print this to make a popup:

<script> parent.document.getElementById('postmessage').style.display='block'; parent.alert('Successfully posted');</script>

On the webpage you want to send information from make a form and Iframe like this.

<spanid="postmessage"style="display:none">Success Message</span><formaction="http://www.remoteserver.com/upload_test.php"method="post"target="post_to_iframe"><inputtype="hidden"value="the text to send to remote server" /><inputtype="submit"value="Submit" /></form><!-- When you submit the form it will submit to this iFrame without refreshing the page and it will make the popup and display the message. --><iframename="post_to_iframe"style="width: 600px; height: 500px;"></iframe>

Solution 3:

Use javascript to create an iframe. Then add a form to the iframe and submit it. Once the form has been submitted, the onload callback will fire.

var i=document.createElement('iframe');
i.setAttribute('name', 'frame-id');
i.setAttribute('id', 'frame-id');
i.setAttribute('allowtransparency', 'true');
i.setAttribute('style', 'border: 0; width: 1px; height: 1px; position: absolute; left: 0; top: 0;');
i.setAttribute('onload', 'iframeFormSubmitted();');

document.body.appendChild(i);

var html = '<html><body>' +
'<form action="/post_url" method="post" id="iframe-form" accept-charset="utf-8">' +
'<input type="hidden" name="id" value="' + your_text + '"/>' +
'</form>' +
'<scr'+"ipt>var e=encodeURIComponent,w=window,d=document,f=d.getElementById('f');" +
"d.getElementById('iframe-form').submit();" +
'</scr'+"ipt></body></html>";

window.frames['frame-id'].document.write(html);

Post a Comment for "Sending Text Cross Domain By Bookmarklet"