Автор Тема: Отображение Iframe в основном окне с помощью Javascript  (Прочитано 12215 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн covex1

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 63
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не бейте жестоко ногами - я ПХПешник.
В Javascript полный ноль.
Есть документ:



....
....


В iframe идет постоянный рефреш test.php (каждые 0,5 секунды).
Как мне на javascript забрать отображение из iframe и выложить в основной документ?

Глобальная задача избавится от мерцания при рефреше, если iframe не размером 1х1.

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Цитировать
covex1:
Как мне на javascript забрать отображение из iframe и выложить в основной документ?


А что подразумевается под отображением, мне например не понятно?

Оффлайн covex1

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 63
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Цитировать
html_coder:
А что подразумевается под отображением, мне например не понятно?


То что делает файл test.php и выводит echo\'м.
Скажем в зависимости от внешних факторов он сначала выводит
"--------
10
-------
Сумма = 10"

Внешние факторы изменились, выводит

"--------
10+10
-------
Сумма = 20"

Если iframe сделать размером 400х400, то при рефреше мерцает. В инете только и говорят что бы избавится от мерцания,  сделать iframe 1x1 и забирать оттуда результат работы php файла с помощью js в основное окно. Но не одного примера не нашел.

Оффлайн vasa_c

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 157
  • +0/-0
  • 0
    • Просмотр профиля
    • http://blgo.ru/blog/
covex1
Доступ к документу, находящемуся в ифрейме из родительского документа:
document.getElementById( \'iframeID\' ).contentWindow.document
Правда родительский и ифреймовый документ д.б. с одного домена.
Блог ГО

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
covex1
1.Обращаться из JS к документу в iframe id="source" можно как document.getElementById(\'source\').contentWindow.document;
2.Для таких вещей существует AJAX. Не изобретай велосипед.
LJ: Backslashed life (rss)

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
К сожалению сказать большего нечего ))))

Оффлайн covex1

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 63
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Цитировать
vasa_c:
document.getElementById( \'iframeID\' ).contentWindow.document


Написал так:




....
....



Чего-то ничего не показывает :-(

Оффлайн Shadow_exe

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
Можно так:

document.getElementById(\'qwerty\').document.images[0]
Если там находится одно изоброжение!

Хотя не горантирую что это будет работать!

Спросилбы ты как это сделать в Делфи! =))))

Оффлайн vasa_c

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 157
  • +0/-0
  • 0
    • Просмотр профиля
    • http://blgo.ru/blog/
covex1, а чего он должен показывать?

Нужно достать текст из какого-то элемента в ифрейме и записать в какой-то элемент в родительском документе, так? Где это здесь делается?
Блог ГО

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
vasa_c

1. Он допустил и ещё одну ошибку, обращаясь к элементу по ID о котором браузер еще ничего не знает...

2. Я чего то сам не могу догнать как быть дальше, как всё-таки извлечь текст, по идее должно работать так document.getElementById(\'qwerty\').contentWindow.document.body.innerHTML
, т.е. как обычно извлекается содержимое body, но оно чего-то возвращает пустую строку, хотя может я что-то не так понял?

Оффлайн covex1

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 63
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Цитировать
vasa_c:
Нужно достать текст из какого-то элемента в ифрейме и записать в какой-то элемент в родительском документе, так?


test.php в простом запуске показывает в браузере следующее:
10 ------- Сумма = 10

Код test.php
echo "10 ------- Сумма = 10";
?>


Теперь запихиваем этот файл (test.php) в iframe размером 1х1.

А теперь задача отобразить в основном документе, текстовую информацию которая получается в результате выполнения скрипта test.php, который лежит в скрытом iframe, а точнее в iframe размером 1х1.

Оффлайн vasa_c

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 157
  • +0/-0
  • 0
    • Просмотр профиля
    • http://blgo.ru/blog/
Цитировать
html_coder:

2. Я чего то сам не могу догнать как быть дальше, как всё-таки извлечь текст, по идее должно работать так document.getElementById(\'qwerty\').contentWindow.document.body.innerHTML , т.е. как обычно извлекается содержимое body, но оно чего-то возвращает пустую строку, хотя может я что-то не так понял?


У меня работает. Если в body только текст, без тэгов, я бы вытащил его так:
document.getElementById( \'qwerty\' ).contentWindow.document.body.firstChild.data
Блог ГО

Оффлайн vasa_c

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 157
  • +0/-0
  • 0
    • Просмотр профиля
    • http://blgo.ru/blog/
covex1, нужно во первых:
1. Получить доступ из родительского окна к iframe. Как я написал.
2. Взять текст из одного элемента и записать во второй. Ты не знаешь, как это сделать?
Блог ГО

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
covex1





And no religion too...

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
html_coder
vasa_c
флэймеры млин...
And no religion too...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28