Bookmarklet: Ajouter un iframe caché à la page et charger l'URL
-
10-07-2019 - |
Question
J'ai un bookmarklet pour réinitialiser mon routeur. Je dois juste visiter et laisser la page finir de charger, puis mon routeur commence à réinitialiser.
javascript:(function(){w=window.open("http://192.168.0.1/goform/formReboot","","width=1,height=1");self.focus();window.onload=w.close();})();
Mais il s'ouvre dans une fenêtre contextuelle.
Ma nouvelle idée est d’ajouter dynamiquement une iframe masquée à la page sur laquelle je suis en utilisant un bookmaklet javascript, puis d’ouvrir l’url de cette iframe masquée. Est-ce même possible?
Je suis ouvert à une meilleure suggestion sur la manière de procéder.
La solution
Un moyen encore plus simple serait de créer un nouvel élément IMG:
(function(){
(new Image()).src = "http://192.168.0.1/goform/formReboot";
})();
En tant que bookmarklet:
javascript:void((function(){(new Image()).src = "http://192.168.0.1/goform/formReboot";})());
Ou, si cela ne fonctionne pas, voici le créateur de l'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);
})();
Autres conseils
Peut-il être fait? Bien sûr!
- Créer un élément iframe avec quels que soient les paramètres nécessaires
- Ajoutez-le comme le dernier enfant au corps élément
- Fait!
Voici un exemple (tout irait sur une seule 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));