Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Динамическое создание Iframe (https://javascript.ru/forum/dom-window/9463-dinamicheskoe-sozdanie-iframe.html)

Арсений 18.05.2010 16:47

Динамическое создание Iframe
 
Нужно создать динамически Iframe
я создаю его таким вот путем
var el = document.createElement("iframe");
document.body.appendChild(el);
el.id = 'iframe';
el.style.width = "50px";
el.style.height = "50px";
el.src = 'test_2.html';


но почему то ругается на
document.body.appendChild(el);
уже перерыл гугл ни как не могу найти альтернативный вариант создания Ifremа. Толи я поисковиком не умею пользоваться толи я, что то не так делаю.

Kolyaj 18.05.2010 16:52

Как ругается-то?

Арсений 18.05.2010 16:56

фаер баг пишет вот такое
document.body is null
error source line: [Break on this error] document.body.appendChild(el)[0];

Kolyaj 18.05.2010 17:02

Значит body ещё нет, когда вы в него добавить пытаетесь.

Арсений 18.05.2010 17:07

понял :) спс :)

Арсений 18.05.2010 17:38

у меня тогда еще вот такой вопрос.
я создаю Iframe с помощью кода приведенного выше, а затем мне нужно взять некоторые значения из той страницы, что он загружает в себя для этого я делаю так
var div = el.contentWindow.document.getElementsByClassName('123')[0].innerHTML;  
alert(div.innerHTML);


но alert не вызывается.
почему такое может быть ?это из за того, что Iframe создается и тут же удаляется? или написано в коде не правильно?

Skipp 18.05.2010 17:51

getElementsByClassName <- не кросбраузерный метод(если ты конечно его не переопределял(что думаю врятли)). Измени на getElementById, только предварительно измени строку
el.id = 'iframe';
на
el.setAttribute("id", "iframe");

И проверь чтоб в этот момент у тебя iframe был!

Kolyaj 18.05.2010 18:23

Цитата:

Сообщение от Арсений
Iframe создается и тут же удаляется?

А загрузку ждёте?

Арсений 18.05.2010 18:44

попробовал так как сказал Skipp
и мне выдало вот такую ошибку
el.contentWindow.document.getElementById("123") is null
error source line: [Break on this error] var div = el.contentWindow.document.getElementById('123')[0].innerHTML;

я так понимаю, что это как и в прошлый раз было с body, только тут Iframe еще не загрузилось, а поиск нужно мне элемента уже начался? или тут в чем то другом ошибка?

Kolyaj
я не понял вопроса:) получается я клацаю на кнопку и вижу как появляется Iframe и тут же исчезает но alert так и не появляется

Kolyaj 18.05.2010 20:58

Чтобы документ в iframe загрузился, нужно время.


Часовой пояс GMT +3, время: 20:22.