powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как дождаться завершения загрузки страницы в фрейм?
13 сообщений из 13, страница 1 из 1
Как дождаться завершения загрузки страницы в фрейм?
    #34213760
gromozeka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На странице есть iframe, загружаю в него другую страницу, после чего нужно обращаться к полям этой страницы. Однако страница ведь загружается не мгновенно, и обращение к полям вызывает ошибку. Как дождаться завершения загрузки страницы в фрейм?
...
Рейтинг: 0 / 0
Как дождаться завершения загрузки страницы в фрейм?
    #34213841
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Повесить на BODY страницы фрейма событие onload().
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
Как дождаться завершения загрузки страницы в фрейм?
    #34214038
gromozeka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4m@t!cПовесить на BODY страницы фрейма событие onload().
И что в этом событии делать? Как сделать собственно ожидание ?
Примерчик можно?
...
Рейтинг: 0 / 0
Как дождаться завершения загрузки страницы в фрейм?
    #34214451
Tror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так ведь ничего ждать и не надо.
onload происходит после полной загрузки тела документа

вот кстати сцылка
...
Рейтинг: 0 / 0
Как дождаться завершения загрузки страницы в фрейм?
    #34215074
gromozeka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То ли меня не поняли, то ли я вас не понимаю... Вот пример того, что я хочу сделать, но не знаю как:
test.hta
Код: plaintext
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.
29.
30.
31.
32.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<hta:application />
<head><title>Test</title></head>
<script language="JScript">
var frameLoaded = false;
var progress;
function setFrameLoaded() { frameLoaded = true; }
function loadFrame(filename) {
	frameLoaded = false;
	document.all.mainFrame.src = filename;
}
function getFrameObject(fname, id) { return top[fname].document.getElementById(id); }
function test() {
	progress = getFrameObject('mainFrame', 'progressText'); // получается progress==null
	progress.innerText = 'Обработано файлов:'; // и тогда, естественно, на этой строке получаем ошибку
}
function frame1() { 
	loadFrame('frame.html'); 
	test(); // как сделать, чтобы эта функция вызвалась только после полной загрузки фрейма?
}
</script>
<body>
	<form id="menuForm">
		<input type="button" name="btn1" value="Button1" onclick="frame1();">
		<input type="button" name="btn2" value="Button2" onclick="alert(frameLoaded);">
		<input type="button" name="btnExit" value="Выход" onclick="window.close();">
	</form>
	<iframe name="mainFrame" id="mainFrame" application="yes"></iframe>
</body>
</html>
frame.html
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<html>
<head>
<body onload="parent.setFrameLoaded();">
	<span>Test</span>
	<table>
		<tr>
			<td><span id="progressText"></span></td>
			<td><span id="progressValue"></span></td>
		</tr>
	</table>
</body>
</html>
...
Рейтинг: 0 / 0
Как дождаться завершения загрузки страницы в фрейм?
    #34216367
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gromozeka...
<body onload="parent.setFrameLoaded();">
...

вы всё и сделали
какие проблемы?
...
Рейтинг: 0 / 0
Как дождаться завершения загрузки страницы в фрейм?
    #34216425
gromozeka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну запустите приведенный пример, и увидите, что при нажатии на кнопку 1 выдается ошибка. В комментариях я все расписал.
Мне нужно, чтобы функция loadFrame ждала завершения загрузки страницы в фрейме. Если написать функцию loadFrame так:
Код: plaintext
1.
2.
3.
4.
function loadFrame(filename) {
	frameLoaded = false;
	document.all.mainFrame.src = filename;
	while (!frameLoaded) ;
}
браузер виснет (цикл никогда не кончается). Как сделать, чтобы функция loadFrame дождалась установки флага frameLoaded?
...
Рейтинг: 0 / 0
Как дождаться завершения загрузки страницы в фрейм?
    #34216454
Фотография Damnedest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
while (!frameLoaded) ;
еще бы ему не зацикливаться...
...
Рейтинг: 0 / 0
Как дождаться завершения загрузки страницы в фрейм?
    #34216476
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gromozekaНу запустите приведенный пример, и увидите, что при нажатии на кнопку 1 выдается ошибка. В комментариях я все расписал.
Мне нужно, чтобы функция loadFrame ждала завершения загрузки страницы в фрейме. Если написать функцию loadFrame так:
Код: plaintext
1.
2.
3.
4.
function loadFrame(filename) {
	frameLoaded = false;
	document.all.mainFrame.src = filename;
	while (!frameLoaded) ;
}
браузер виснет (цикл никогда не кончается). Как сделать, чтобы функция loadFrame дождалась установки флага frameLoaded?
Ух. невнимательность
В опере и так работает
Есть причины не написать parent.test()? Тогда и в ИЕ будет
...
Рейтинг: 0 / 0
Как дождаться завершения загрузки страницы в фрейм?
    #34216634
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати возможно проблема возниикала из-за оптимизации цикла
Код: plaintext
while (!frameLoaded) ;
в будущих версиях JS планируют ввести volatile для борьбы с ними,
а вообще я бы не стал так писать
...
Рейтинг: 0 / 0
Как дождаться завершения загрузки страницы в фрейм?
    #34216666
gromozeka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Damnedest
Код: plaintext
while (!frameLoaded) ;
еще бы ему не зацикливаться...
Да это я написал только для указания, что в этом месте требуется ожидание. Кстати, в JScript есть аналог sleep?
DamnedestЕсть причины не написать parent.test()? Тогда и в ИЕ будет
Смысл в том, что главная страница должна управлять той, что загружена во фрейм (устанавливать поля и т.п.), а для этого она должна знать, когда страница во фрейме загружена полностью.
...
Рейтинг: 0 / 0
Как дождаться завершения загрузки страницы в фрейм?
    #34216824
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DamnedestДа это я написал только для указания, что в этом месте требуется ожидание...
Думаю поможет
Код: plaintext
setTimeout("myfunc()", 1000 );//ms
т е функция запустится через указанное время
...
Рейтинг: 0 / 0
Как дождаться завершения загрузки страницы в фрейм?
    #34217757
gromozeka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LINUXERДумаю поможет
Код: plaintext
setTimeout("myfunc()", 1000 );//ms
т е функция запустится через указанное времяПомогло, да. Но я буду каверзным до конца :) Что, если страница не загрузится за указанный таймаут?
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как дождаться завершения загрузки страницы в фрейм?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]