Skip to content

Instantly share code, notes, and snippets.

@ikkez
Last active July 18, 2016 11:53
Show Gist options
  • Save ikkez/dc76d81a23be47996ac90954069f287f to your computer and use it in GitHub Desktop.
Save ikkez/dc76d81a23be47996ac90954069f287f to your computer and use it in GitHub Desktop.
JS reload bookmarklet. Useful to reload a specific js file and re-render a DOM node on any website.
javascript:%20var%20JSreload={file:'',selector:'',rawContent:'',domContent:'',domElContent:'',init:function(){if(typeof%20jQuery==="undefined")%20alert("jQuery%20not%20loaded.");else{jQuery(document).ready(function(){JSreload.displayPanel();JSreload.load();});};},load:function(){$.ajax(window.location.href,{async:false}).done(function(data){JSreload.rawContent=data;JSreload.domContent=$.parseHTML(data);});},run:function(){var%20date=new%20Date().getTime();JSreload.file=$('#JSreload-script').val();JSreload.selector=$('#JSreload-selector').val();if(JSreload.selector=='body'){JSreload.selector='#JSreload-body';var%20data=JSreload.rawContent.replace('<body','<body><div%20id="JSreload-body"').replace('</body>','</div></body>');JSreload.domElContent=$($.parseHTML(data)).filter('#JSreload-body').html();$('body').html(JSreload.domElContent);}else{JSreload.domElContent=$(JSreload.domContent).filter(JSreload.selector).html();$(JSreload.selector).html(JSreload.domElContent);}%20$('head').append('<script%20class="JSreload"%20src="'+JSreload.file+'?'+date+'"></script>');},displayPanel:function(){var%20box=$('<div%20id="JSreload"/>');box.css({position:'fixed',left:50,top:100,width:220,minHeight:100,background:'rgba(0,0,0,0.7)',borderRadius:5,zIndex:10000,padding:10});var%20title=$('<p>JSreload</p>').css({color:'#ffffff',fontWeight:'bold'});var%20btn=$('<a%20href="#"%20/>').css({color:'#ffffff',display:'inline-block',padding:'4px',borderColor:'#ccc',borderWidth:'1px',borderStyle:'solid',margin:'3px'});var%20label=$('<p%20/>').css({color:'#ffffff',fontSize:'11px',margin:'0'});var%20run=btn.clone().text('reload').click(function(e){e.preventDefault();JSreload.run();return%20false;});var%20scripts=$('<select%20id="JSreload-script"%20/>').css({width:200,border:'none',background:'rgba(0,0,0,0.7)',color:'#ffffff'});var%20selector=$('<input%20id="JSreload-selector"%20value="body"%20/>').css({width:180,border:'none',background:'rgba(0,0,0,0.7)',color:'#ffffff',padding:'3px%2010px'});$('script').each(function(index,el){if(el.src!='')%20scripts.append($('<option%20/>').text(el.src));});box.append(title);box.append(label.clone().text('file%20to%20reload'));box.append(scripts);box.append(label.clone().text('selector'));box.append(selector);box.append(run);$('body').prepend(box);}};function%20loadjQuery(url,callback){var%20script_tag=document.createElement('script');script_tag.setAttribute("src",url);script_tag.onload=callback;script_tag.onreadystatechange=function(){if(this.readyState=='complete'||this.readyState=='loaded')callback();};document.getElementsByTagName("head")[0].appendChild(script_tag);}%20if(typeof%20jQuery==="undefined"){loadjQuery("//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js",JSreload.init);}else%20JSreload.init();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment