2009-03-11 39 views
6

Tengo un bookmarklet para restablecer mi enrutador. Solo necesito visitar y dejar que la página termine de cargarse, luego mi enrutador comienza a restablecerse.Bookmarklet: Añadir iframe oculto a la página y cargar url

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

Pero se abre en una ventana emergente.

Mi nueva idea es agregar dinámicamente un iframe oculto a la página en la que estoy usando un bookmaklet de JavaScript, y luego abrir la url en el iframe oculto. ¿Esto es posible?

Estoy abierto para una mejor sugerencia sobre cómo se puede hacer esto.

Respuesta

25

Una forma aún más fácil sería la creación de un nuevo elemento IMG:

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

Como un bookmarklet:

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

O, si eso no funciona, aquí está la ' iframe 'creador que solicitó:

(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); 
})(); 
+1

¿Por qué utiliza vacío() alrededor del código, cuando ya se está utilizando (function() {})? –

2

Puede ser ¿hecho? ¡Por supuesto!

  1. Crear un elemento iframe, con lo parámetros necesarios
  2. añadirlo como el último hijo al elemento del cuerpo
  3. hecho!

He aquí un ejemplo (todo iba a ir en una línea):

javascript:var%20ifra=document.createElement('iframe'); 
ifra.src="http://www.chron.com"; 
ifra.setAttribute("height","230"); 
ifra.setAttribute("width","360"); 
void(document.body.appendChild(ifra)); 
Cuestiones relacionadas