Результат не возвращается в родительское окно

  • Автор темы SergDegun
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

SergDegun

Родительское окно (файл Frame.html) содержит два фрейма (это окно вызывается по кнопке "Show mother window" из файла Start.html в модальном варианте; или показывается непосредственно при нажатии на Frame.html в не модальном виде). В один из этих фреймов выводится файл Test.html. В другой — Mother.html. Из того фрейма (который имеет имя MotherFrame), что содержит Mother.html, производится вызов дочернего модального окна (файл Child.html). Необходимо, чтобы это дочернее модальное окно замещало бы содержимое того фрейма родительского окна, из которого это дочернее окно было вызвано, файлом Test.html. Т.е. должно получиться, что родительское окно будет содержать друг под другом два вывода файла Test.html. Однако этого не происходит, а запускается новое окно, в которое и выводится файл Test.html. Как это исправить на следующем примере:

Пример запускается файлом Start.html
Код:
<HTML>
<HEAD>
<TITLE>Test modal window</TITLE>
<script LANGUAGE="JavaScript">
<!--
 function ButtonClick() {
   window.showModalDialog("Frame.html", "", "resizable:Yes");
 }
//-->
</SCRIPT>
</HEAD>
<BODY>
<p><INPUT type="button" style="width:200px" onClick="ButtonClick(this)" name="MotherBtn" value="Show mother window"/></p>
</BODY>
</HTML>
Он запускает файл Frame.html
Код:
<HTML>
<HEAD>
<TITLE>Frame Window</TITLE>
</HEAD>
<FRAMESET rows="50%,50%">
<frame noResize scrolling="no" frameborder="yes" border="1" name="TestFrame" src="Test.html">
<frame noResize scrolling="no" frameborder="yes" border="1" name="MotherFrame" src="Mother.html">
</FRAMESET>
</HTML>
Последний запускает файл Mother.html
Код:
<html>
<head>
<title>Mother</title>
<script LANGUAGE="JavaScript">
<!--
 // Button click
 function ButtonClick(Object) {
   window.showModalDialog("Child.html", "", "resizable:Yes");
 }
//-->
</SCRIPT>
</head>
<body>
<form name="MotherForm">
<p><INPUT type="button" style="width:200px" onClick="ButtonClick(this)" name="ChildBtn" value="Show child window"/></p>
</form>
</body>
</html>
Из него запускает файл Child.html
Код:
<html>
<head>
<title>Child</title>
<script LANGUAGE="JavaScript">
<!--
 // OK Button click
 function OKButtonClick(Object) {
   window.open("Test.html", "MotherFrame");
   window.close();
 }
 // Cancel Button click
 function CancelButtonClick(Object) {
   window.close();
 }
//-->
</SCRIPT>
</head>
<body>
<form name="ChildForm" target="MotherFrame" method="POST" action="">
<p><INPUT type="text" style="width:100%" name="TextLine" value=""/></p>
<p>
<INPUT type="button" style="width:100px" onClick="OKButtonClick(this)" name="OK_BTN" value="OK"/>
<INPUT type="button" style="width:100px;position:relative;left:50px" onClick="CancelButtonClick()" name="CANCEL_BTN" value="Cancel"/>
</p>
</form>
</body>
</html>
который, по идее, должен помещать файл Test.html
Код:
<HTML>
<HEAD>
<TITLE>Test</TITLE>
</HEAD>
<BODY>
<p><b>Test</b></p>
</BODY>
</HTML>
на место родительского фрейма MotherFrame. Но этого не происходит, а запускается новое окно, в которое и выводится файл Test.html. Как это исправить?
 
S

Shurup

Попробуй изменить исходник Child.html так:

Код:
<script LANGUAGE="JavaScript">
<!--
 // OK Button click
 function OKButtonClick(Object) {
   var form = document.forms["ChildForm"];
   form.action = "Test.html";
   form.target = "MotherFrame";
   form.submit();
   window.close(); //возможно эту строчку выше поднять
 }
 // Cancel Button click
 function CancelButtonClick(Object) {
   window.close();
 }
//-->
</SCRIPT>
 
S

SergDegun

К сожалению результат тот же.

Кстати, если запускать пример из файла Frame.html, то все работате как надо. Но если через файл Start.html, то не работает. Можеть быть есть какое-то ограничение на количество одновременно запущенных модальных окон? Если запускать пример через файл Start.html, то Child.html будет уже вторым модальным окном (первым будет Frame.html).
 
S

Shurup

Да, бывают глюки с модальными окнами, но лично я ни разу модальные окна не использовал, поэтому:


Думаю сам скорее накопаешь ответ.
Трабл может быть из-за id или name окна. Для модальных окон они вроде не задаются..
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!