Mais conteúdo relacionado Bookmarklets and you!5. Building a draggable bookmarklet
window._project_name_url='http://example.dev';
vars=document.createElement('script');
s.setAttribute('src','http://example.dev/js/bookmarklet.js');
s.setAttribute('type','text/javascript');
document.getElementsByTagName('head')[0].appendChild(s);
(function(){
})();
<ahref="javascript:..."onClick="returnfalse">DragMe!</a>
7. Scraping the parent page for data
varProjectBookmarkletObject={
appHost:window._project_name_url,
metaTags:{},
initialize:function(){
this.loadMetaTags();
}
loadMetaTags:function(){
vartags=document.getElementsByTagName('meta');
for(vari=0;i<tags.length;i++){
varkey=tags[i].name||tags[i].getAttribute('itemprop');
varcontent=tags[i].getAttribute('content');
if(key&&content){
this.metaTags[key]=content;
}
}
}
};
this.generateIframe()
9. How do I send data to the iframe?
Don't use GET variables use postMessage!
IE8 and IE9 can send strings only
IE8, IE9, and IE10 does not work cross-origin in new
windows.
10. What is postMessage?
Pass data easily between a third party parent page and
a iframe on a domain you control.
“The window.postMessage method
safely enables cross-origin
communication.” -
http://mdn.io/postMessage
12. Listening in the iframe
varProjectIframe={};
window.addEventListener('message',function(event){
ProjectIframe._preload.data=JSON.parse(event.data);
ProjectIframe.data_loaded=true;
$(function(){
$(window).trigger('data:loaded');
$('body').on('click','.close_frame',function(){
event.source.postMessage('close_frame',event.origin);
});
});
},false);