Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.08.2010, 04:23
Аспирант
Отправить личное сообщение для daMage Посмотреть профиль Найти все сообщения от daMage
 
Регистрация: 31.07.2010
Сообщений: 35

Работа с 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?

Последний раз редактировалось daMage, 03.08.2010 в 16:56.
Ответить с цитированием
  #2 (permalink)  
Старый 03.08.2010, 09:51
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

потому что вы зачем-то получаете ссылку на элемент ифрейма, а затем(не используя полученную ссылку) вызываете метод ab(), у несуществующего элемента window.send
Ответить с цитированием
  #3 (permalink)  
Старый 03.08.2010, 16:57
Аспирант
Отправить личное сообщение для daMage Посмотреть профиль Найти все сообщения от daMage
 
Регистрация: 31.07.2010
Сообщений: 35

Извините, исправил код. Так тоже не работает.
Ответить с цитированием
  #4 (permalink)  
Старый 03.08.2010, 17:05
Новичок на форуме
Отправить личное сообщение для Yakudza_Sg Посмотреть профиль Найти все сообщения от Yakudza_Sg
 
Регистрация: 24.06.2010
Сообщений: 3

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

Этот код работает 100% в FF 3.6
Если функция ab в файле file.html описана правильно, то все будет работать.
Ответить с цитированием
  #5 (permalink)  
Старый 03.08.2010, 17:59
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jquery + iframe Fidel jQuery 6 12.10.2013 23:43
Javascript запрещающий открывать iframe в новом окне. HELP! Андреи Events/DOM/Window 11 26.09.2009 07:36
IFrame и полоса прокрутки freshcoder Events/DOM/Window 1 14.09.2009 13:55
как можно создать iframe со скриптами GOll Общие вопросы Javascript 2 05.05.2009 11:32
установка позиции курсора или выделения в iframe mister_maxim Events/DOM/Window 5 18.04.2009 10:43