2009-03-11 20 views
6

J'ai un bookmarklet pour réinitialiser mon routeur. J'ai juste besoin de visiter et laisser la page finir de charger, puis mon routeur commence à se réinitialiser.Bookmarklet: Ajouter un iframe caché à la page et charger l'URL

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

Mais elle s'ouvre dans une fenêtre de popup.

Ma nouvelle idée est d'ajouter dynamiquement un iframe caché à la page que je suis en utilisant un bookmaklet javascript, puis d'ouvrir l'URL dans le iframe caché. Est-ce seulement possible?

Je suis ouvert pour une meilleure suggestion sur la façon dont cela peut être fait.

Répondre

25

Une façon encore plus facile serait de créer un nouvel élément IMG:

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

En bookmarklet:

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

Ou, si cela ne fonctionne pas, voici le ' créateur iframe 'que vous avez demandé:

(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

Pourquoi utilisez-vous void() autour du code, lorsque vous utilisez déjà (function() {})? –

2

Peut-il être terminé? Sûr!

  1. Créer un élément iframe, avec quel que soit les paramètres nécessaires
  2. Ajoutez que le dernier enfant au corps élément
  3. Terminé!

Voici un exemple (tout irait sur une ligne):

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));