Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: covex1 от 07 Июня 2006, 12:03:58

Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: covex1 от 07 Июня 2006, 12:03:58
Не бейте жестоко ногами - я ПХПешник.
В Javascript полный ноль.
Есть документ:



....
....


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

Глобальная задача избавится от мерцания при рефреше, если iframe не размером 1х1.
Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: html_coder от 07 Июня 2006, 12:07:55
Цитировать
covex1:
Как мне на javascript забрать отображение из iframe и выложить в основной документ?


А что подразумевается под отображением, мне например не понятно?
Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: covex1 от 07 Июня 2006, 12:16:23
Цитировать
html_coder:
А что подразумевается под отображением, мне например не понятно?


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

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

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

Если iframe сделать размером 400х400, то при рефреше мерцает. В инете только и говорят что бы избавится от мерцания,  сделать iframe 1x1 и забирать оттуда результат работы php файла с помощью js в основное окно. Но не одного примера не нашел.
Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: vasa_c от 07 Июня 2006, 12:20:54
covex1
Доступ к документу, находящемуся в ифрейме из родительского документа:
document.getElementById( \'iframeID\' ).contentWindow.document
Правда родительский и ифреймовый документ д.б. с одного домена.
Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: CGVictor от 07 Июня 2006, 12:22:45
covex1
1.Обращаться из JS к документу в iframe id="source" можно как document.getElementById(\'source\').contentWindow.document;
2.Для таких вещей существует AJAX. Не изобретай велосипед.
Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: html_coder от 07 Июня 2006, 12:28:54
К сожалению сказать большего нечего ))))
Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: covex1 от 07 Июня 2006, 12:35:27
Цитировать
vasa_c:
document.getElementById( \'iframeID\' ).contentWindow.document


Написал так:




....
....



Чего-то ничего не показывает :-(
Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: Shadow_exe от 07 Июня 2006, 13:10:17
Можно так:

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

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

Спросилбы ты как это сделать в Делфи! =))))
Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: vasa_c от 07 Июня 2006, 13:15:40
covex1, а чего он должен показывать?

Нужно достать текст из какого-то элемента в ифрейме и записать в какой-то элемент в родительском документе, так? Где это здесь делается?
Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: html_coder от 07 Июня 2006, 13:37:28
vasa_c

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

2. Я чего то сам не могу догнать как быть дальше, как всё-таки извлечь текст, по идее должно работать так document.getElementById(\'qwerty\').contentWindow.document.body.innerHTML
, т.е. как обычно извлекается содержимое body, но оно чего-то возвращает пустую строку, хотя может я что-то не так понял?
Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: covex1 от 07 Июня 2006, 13:42:41
Цитировать
vasa_c:
Нужно достать текст из какого-то элемента в ифрейме и записать в какой-то элемент в родительском документе, так?


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

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


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

А теперь задача отобразить в основном документе, текстовую информацию которая получается в результате выполнения скрипта test.php, который лежит в скрытом iframe, а точнее в iframe размером 1х1.
Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: vasa_c от 07 Июня 2006, 13:56:39
Цитировать
html_coder:

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


У меня работает. Если в body только текст, без тэгов, я бы вытащил его так:
document.getElementById( \'qwerty\' ).contentWindow.document.body.firstChild.data
Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: vasa_c от 07 Июня 2006, 13:59:45
covex1, нужно во первых:
1. Получить доступ из родительского окна к iframe. Как я написал.
2. Взять текст из одного элемента и записать во второй. Ты не знаешь, как это сделать?
Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: commander от 07 Июня 2006, 14:04:36
covex1





Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: commander от 07 Июня 2006, 14:05:47
html_coder
vasa_c
флэймеры млин...
Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: vasa_c от 07 Июня 2006, 14:10:40
commander, а дать человеку немного подумать и получить удволетворение от того, что он сам сумел сделать?
Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: covex1 от 07 Июня 2006, 14:15:29
Цитировать
vasa_c:
а дать человеку немного подумать и получить удволетворение от того, что он сам сумел сделать?


НЕ могу я думать в JS. Хоть убей!!! Какое тут удовольствие???? Одно растройство!!!! В PHP - другое дело - думаю в реальное удовольствие.

commander написал код, а я сижу и думаю как это применить 1 посту :-(  Видать не вижу очевидных вещей......
Продолжаю думать дальше на кодом commander\'a.
Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: vasa_c от 07 Июня 2006, 14:21:52
commander,
var text=frame.form_frame.text_info.value;
если уж на то пошло, то
var text=frame.[B]document[/B].form_frame.text_info.value;

IE то конечно и так съест, а FF на это не пойдет.
Название: Отображение Iframe в основном окне с помощью Javascript
Отправлено: covex1 от 07 Июня 2006, 14:39:18
М-м-м... Я дико извиняюсь, я конечно сильно туплю, меня отпинают ногами.....
Хотел попросить вставить соответствующие куски вышеописанных кодов в сделующие 2 документа:

Код основного окна:





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


P.S. Я уже панически боюсь начала тэга