Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / манипулирование родительским окном из дочернего / 2 сообщений из 2, страница 1 из 1
03.07.2013, 13:08
    #38318571
Guest12896534
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
манипулирование родительским окном из дочернего
Суть вопроса: открываем страничку start.htm, на ней (по кнопке) вызывается новое дочернее окно win1.htm, далее по кнопке в win1 берутся данные с id="result" родительского окна start, далее родительское окно перенаправляется на другой адрес start2.htm и данные опять берутся с id="result" родительского окна, В итоге все выводится в дочернем окне в id="rez".

скрипты страничек:
start.htm
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<html><head><title>title</title>

<script>
function go()
{
var strUrl="win1.htm";
var winName="win1";
var newWin = window.open(strUrl, winName);
}
</script>

</head><body>
<input type="button" value="startWin" onclick="go()">
<br>
<h1> here is the data:</h1>
<div id="result">from start</div>
</body></html>


start2.htm
Код: javascript
1.
2.
3.
4.
5.
6.
<html><head><title>title</title></head>
<body>
<h1> here is the data:</h1>
<div id="result">from start 2</div>
</body>
</html>



win1.htm
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<script>
function get()
{
var dat1=window.opener.document.getElementById('result').innerHTML+"<br>";
window.opener.location.href="start2.htm";
dat1+=window.opener.document.getElementById('result').innerHTML;
document.getElementById('rez').innerHTML=dat1;
}
</script>
</head>
<body>

<input type="button" value="get" onclick="get()">
<h1> here is the result:</h1>
<div id="rez">test value to be changed with data from opener</div>
</body>
</html>


Собственно ожидаемым результатом должно быть содержание id="rez":
from start
from start 2

Такой результат дает только експлорер, мазила дает:from start from start, хром вообще отказывается выполнять действия на win1.
Вопросов несколько:
1. Где я наступил на грабли (хотелось бы чтоб по крайней мере в хроме работало)?
2. есть ли более изящные пути решения?
3. и насколько скрипт зависим от времени подгрузки страницы start2.htm (
Код: javascript
1.
window.opener.location.href="start2.htm";

), ведь я так понимаю скрипту нет дела успела она загрузиться или нет, он выполняется дальше и новые данные могут не успеть загрузиться. Как удостовериться, что страница обновилась и после этого только продолжить выполнение скрипта?
...
Рейтинг: 0 / 0
03.07.2013, 14:55
    #38318851
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
манипулирование родительским окном из дочернего
Guest12896534ведь я так понимаю скрипту нет дела успела она загрузиться или нет, он выполняется дальше и новые данные могут не успеть загрузиться.
Правильно понимаешь.

Guest12896534Как удостовериться, что страница обновилась и после этого только продолжить выполнение скрипта?
Как вариант иметь на страницах некие глобальные переменные и из дочернего окна ждать их "появления" с неким таймаутом...
Только ведь можно и не дождаться той занрузки... Этот вариант так же нужно отрабатывать...
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / манипулирование родительским окном из дочернего / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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