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

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем SergDegun, 24 апр 2006.

Статус темы:
Закрыта.
  1. SergDegun

    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
    Код (Text):
    <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
    Код (Text):
    <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
    Код (Text):
    <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
    Код (Text):
    <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
    Код (Text):
    <HTML>
    <HEAD>
    <TITLE>Test</TITLE>
    </HEAD>
    <BODY>
    <p><b>Test</b></p>
    </BODY>
    </HTML>
    на место родительского фрейма MotherFrame. Но этого не происходит, а запускается новое окно, в которое и выводится файл Test.html. Как это исправить?
     
  2. Shurup

    Shurup Гость

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

    Код (Text):
    <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>
     
  3. SergDegun

    SergDegun Гость

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

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

    Shurup Гость

    Да, бывают глюки с модальными окнами, но лично я ни разу модальные окна не использовал, поэтому:
    http://msdn.microsoft.com/library/default....modaldialog.asp

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

Поделиться этой страницей