Bookmarklet: добавить скрытый iframe на страницу и загрузить URL - PullRequest
7 голосов
/ 11 марта 2009

У меня есть букмарклет для сброса настроек маршрутизатора. Мне просто нужно зайти и дождаться окончания загрузки страницы, после чего мой роутер начнет перезагружаться.

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

Но он открывается во всплывающем окне.

Моя новая идея состоит в том, чтобы динамически добавлять скрытый iframe на страницу, на которой я работаю, с помощью javascript bookmaklet, а затем открывать URL в скрытом iframe. Это вообще возможно?

Я открыт для лучшего предложения о том, как это можно сделать.

Ответы [ 2 ]

28 голосов
/ 11 марта 2009

Еще более простым способом было бы создать новый элемент IMG:

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

как букмарклет:

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

Или, если это не сработает, вот создатель 'iframe', который вы запросили:

(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);
})();
2 голосов
/ 11 марта 2009

Можно ли это сделать? Конечно!

  1. Создать элемент iframe с какие бы параметры не понадобились
  2. Добавьте это как последний ребенок к телу элемент
  3. Готово!

Вот пример (все будет идти в одну строку):

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