Bookmarklet: Append hidden iframe to page and load url

Sindre Sorhus picture Sindre Sorhus · Mar 11, 2009 · Viewed 20.9k times · Source

I have a bookmarklet for resetting my router. I just need to visit and let the page finish loading, then my router starts resetting.

javascript:(function(){w=window.open("http://192.168.0.1/goform/formReboot","","width=1,height=1");self.focus();window.onload=w.close();})();

But it opens in a popup window.

My new idea is to dynamically append an hidden iframe to the page I'm on using a javascript bookmaklet, and then open the url in the hidden iframe. Is this even possible?

I'm open for better suggestion on how this can be done.

Answer

James picture James · Mar 11, 2009

An even easier way would be to create a new IMG element:

(function(){
    (new Image()).src = "http://192.168.0.1/goform/formReboot";
})();

As a bookmarklet:

javascript:void((function(){(new Image()).src = "http://192.168.0.1/goform/formReboot";})());

Or, if that doesn't work, here's the 'iframe' creator you requested:

(function(){
    var i = document.createElement('iframe');
    i.style.display = 'none';
    i.onload = function() { i.parentNode.removeChild(i); };
    i.src = 'http://192.168.0.1/goform/formReboot';
    document.body.appendChild(i);
})();