Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Обращение к содержимому динамически добавляемого фрейма (https://javascript.ru/forum/dom-window/24-obrashhenie-k-soderzhimomu-dinamicheski-dobavlyaemogo-frejjma.html)

Esciloner 21.06.2007 13:20

Обращение к содержимому динамически добавляемого фрейма
 
Код:

<html>
<head>
    <script>
        function test_()
        {
            document.getElementById('container').innerHTML = '<iframe id="test" src="1.html"></frame>';
            alert(document.getElementById('test').contentDocument.getElementById('find_me'));
        }
    </script>
</head>
<body>
<div id="container"></div>
<input type="button" onclick="test_()" value='find me'>
</body>
</html>

В файле 1.html единственный элемент с id "find_me". Алерт его значение не выводит. Пробовал добавлять iframe через DOM - та же фигня. При том, что со статическом iframe все пучком. Что не так?

Илья Кантор 21.06.2007 13:32

Возможно, дело в том, что на момент запуска alert() ифрейм еще не загрузился.

Может, прицепить к нему alert на onload ?

Esciloner 21.06.2007 13:59

Не похоже. Ставлю перед алертом пустой цикл, чтобы скрипт придержать - результат тот же.

Илья Кантор 21.06.2007 14:11

Цитата:

Сообщение от Esciloner (Сообщение 99)
Не похоже. Ставлю перед алертом пустой цикл, чтобы скрипт придержать - результат тот же.

А ты думаешь, что цикл будет в другом потоке выполняться, и где-то параллельно - загрузится html? Это совсем не обязательно. Может быть, ничего не будет загружаться пока цикл запущен.

Поставь тогда вызов alert в таймаут 3 секунды через setTimeout

Esciloner 21.06.2007 14:15

И правда взяло. thnx


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