Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Работа с IFRAME (https://javascript.ru/forum/events/11026-rabota-s-iframe.html)

daMage 03.08.2010 04:23

Работа с IFRAME
 
Имеются два файла:
первый - index.html
второй - file.html
В первом файле создается IFRAME:
<iframe name="send" src="scripts/file.html" id="frame"></iframe>

А во втором: функция ab:
function ab() {
   alert(1);
}

Затем в первом файле пишется такая функция:
setTimeOut(function() {
   var frame = document.getElementById('frame');
   frame.ab();
}, 3000)

Вопрос: почему не выводится модальное окно с надписью 1?

Gvozd 03.08.2010 09:51

потому что вы зачем-то получаете ссылку на элемент ифрейма, а затем(не используя полученную ссылку) вызываете метод ab(), у несуществующего элемента window.send

daMage 03.08.2010 16:57

Извините, исправил код. Так тоже не работает.

Yakudza_Sg 03.08.2010 17:05

setTimeOut(function() {
   var i_frame = window.send;
   i_frame.ab();
}, 3000)

Этот код работает 100% в FF 3.6
Если функция ab в файле file.html описана правильно, то все будет работать.

x-yuri 03.08.2010 17:59

я бы предпочел следующий вариант, потому что использовать автоматически создаваемые глобальные переменные не лучшая привычка
setTimeout(function() {
    var iframe = document.getElementById('frame');
    var w = iframe.contentWindow || iframe.contentDocument.window;
    w.ab();
}, 3000);


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