Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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 браузерах значения не передаются.
Ответить с цитированием
  #2 (permalink)  
Старый 19.06.2019, 10:59
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Freestyle007,
У меня вполне работает в Chrome 75.0.3770.100, IE 11.0.130, FF 62.0.3,
Opera 48.0
- без каких-либо проблем
Ответить с цитированием
  #3 (permalink)  
Старый 19.06.2019, 11:54
Интересующийся
Отправить личное сообщение для Freestyle007 Посмотреть профиль Найти все сообщения от Freestyle007
 
Регистрация: 17.06.2019
Сообщений: 21

Сообщение от Dilettante_Pro Посмотреть сообщение
Freestyle007,
У меня вполне работает в Chrome 75.0.3770.100, IE 11.0.130, FF 62.0.3,
Opera 48.0
- без каких-либо проблем
У меня фреймы строятся, и страницы в них отображаются. Но в Google Chrome не передаются значения из одного фрейма в другой. В Firefox работает корректно. Не пойму в чем проблема

Google Chrome: Версия 72.0.3626.109 (Официальная сборка), (64 бит)
Mozilla Firefox: Версия 60.5.0esr (64-бит) Quantum
Ответить с цитированием
  #4 (permalink)  
Старый 19.06.2019, 11:56
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

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

Нет. Вот готовые макеты страниц test.zip

Не понимаю в чем причина... Почему Google Chrome не изменяет переменные при переходе на страницу.

Проверил в IE, также не работает. Корректно работает только в Firefox

Последний раз редактировалось Freestyle007, 19.06.2019 в 12:22.
Ответить с цитированием
  #6 (permalink)  
Старый 19.06.2019, 12:38
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Freestyle007,
Сначала проверял на текстах из пост#1,
ваши макеты из архива у меня тоже работают во всех браузерах
Ответить с цитированием
  #7 (permalink)  
Старый 19.06.2019, 12:44
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Freestyle007,
На всякий случай уберите одинаковые id в файле ind_ex.html - они должны быть уникальными.
У меня это, правда, не мешает...
Ответить с цитированием
  #8 (permalink)  
Старый 19.06.2019, 12:46
Интересующийся
Отправить личное сообщение для Freestyle007 Посмотреть профиль Найти все сообщения от Freestyle007
 
Регистрация: 17.06.2019
Сообщений: 21

Сообщение от Dilettante_Pro Посмотреть сообщение
Freestyle007,
Сначала проверял на текстах из пост#1,
ваши макеты из архива у меня тоже работают во всех браузерах
А что именно у вас работает? При выборе ссылки test1 переходите на страницу и в верхнем фрейме меняются значения: номер темы, количество тестов и оценка?
Вы через виртуальный сервер типа Apache запускаете или просто распаковываете архив на диск и открываете в браузерах?
Ответить с цитированием
  #9 (permalink)  
Старый 19.06.2019, 12:52
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Freestyle007,
При выборе ссылки test1 значения меняются, test2 - снова меняются.

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

Сообщение от Dilettante_Pro Посмотреть сообщение
Freestyle007,
На всякий случай уберите одинаковые id в файле ind_ex.html - они должны быть уникальными.
У меня это, правда, не мешает...
ID для элементов <li> нужны только для CSS, они ни на что не влияют.
Но я попробовал убрать, бесполезно. Подумал, что браузер не может корректно отобразить страницу из-за небезопастного содержимого, объявление в мета-тегах ничего не исправляет
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r"/>


Такое ощущение, что какая-то настройка безопасности в Google Chrome не даёт возможности обмениваться данными фреймам между собой.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 16:37
как правильно передать значение переменной? kentnsk Общие вопросы Javascript 6 25.02.2011 11:49
Как передать значения Alenkaa Events/DOM/Window 21 20.07.2010 12:56
Переменная от переменной или как к имени переменной конкатенировать значение другой Aderba jQuery 5 12.11.2008 15:25
Добавить значения из одного списка в другой XAOC Events/DOM/Window 10 28.08.2008 13:18