Показать сообщение отдельно
  #1 (permalink)  
Старый 19.06.2019, 04:51
Интересующийся
Отправить личное сообщение для Freestyle007 Посмотреть профиль Найти все сообщения от Freestyle007
 
Регистрация: 17.06.2019
Сообщений: 21

Как передать значения переменной из одного фрейма в другой в Google Chrome
Добрый день! Ребята не могу разобраться, как передать данные переменной из нижнего фрейма в верхний в Google Chrome.

Фрейм с тестом


<script type="text/javascript">
    var frm=window.parent.stat.document.forms.stat; // переменная задающая окно stat
    frm.ntop.value=1; //значениe, задающее номер темы 
    frm.total.value=2; //значениe, количество тестов 
    frm.good.value=0; // значениe, оценку по данной теме
</script>

Верхний фрейм, содержащий "шапку". При выборе разных тем, значения ntop, total и good должны изменяться


<body>
<form action="#" name="stat">
Тема номер: <input name="ntop" value="0" disabled="disabled" size="3" />
Решено: <input name="good" value="0" disabled="disabled" size="3" />
из <input name="total" value="0" disabled="disabled" size="3" />
</form>
</body>


Данный код не работает в Google Chrome. При выборе темы теста на основой странице, значения не передаются в верхний фрейм, в Firefox работает корректно.
Как поменять/присвоить значения в верхнем фрейме в форме name="stat"?

В файле index.html указано следующее:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html>
<head></head>
<frameset rows="60px,*" name="frameset" border="0">
<frame src="ind_up.html" name="stat" scrolling="0" noresize="yes"/>
<frame src="ind_ex.html" name="main" scrolling="0" noresize="yes"/>
</frameset>
</html>


Теги iframe использовать не удобно, потому что приходится жестко указывать высоту фрейма. При использовании frameset, нижняя страница отображается целиком. Да, не поддерживается в html5, но это пока не очень волнует.


В файле ind_up.html, форма выглядит вот так, это собственно вся страница, которая загружается в верхний фрейм:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
...
<body>
<form action="#" name="stat">
Тема номер: <input name="ntop" value="0" disabled="disabled" size="3" />
Решено: <input name="good" value="0" disabled="disabled" size="3" />
из <input name="total" value="0" disabled="disabled" size="3" />
</form>
</body>


В файле ind_ex.html, тело документа выглядит вот так:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<body>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td width="10%" align="center" valign="top"></td>
<td width="90%" align="left" valign="center">
    <H2>Тесты</h2>
 
        <li id=soder><A HREF="test1.html">Тест 1</a></li>
        <li id=soder><A HREF="test2.html">Тест 2</a></li>
...
</td>
</table>
</body>
</html>


При переходе на страницу test1.html, страница выглядит вот так:



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/javascript">
    var frm=window.parent.stat.document.forms.stat;
    frm.ntop.value=1; // номер темы 
    frm.total.value=2; // количество тестов 
    frm.good.value=0; //  оценка по данной теме
</script>
</head>
<body>
...
</body>
</html>


Собственно требуется чтобы при выборе темы на странице ind_ex.html (фрейм "main"), при загрузке страницы test1.html, изменялись значения на странице ind_up.html (фрейм "stat"). В Firefox работает корректно, в Chrome браузерах значения не передаются.
Ответить с цитированием