На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ElcnU, ANDLL, fatalist
  
> закрыть окно на JS
    Добрый день.

    Подскажите плиз!!!! Как закрыть окно зная его имя.
    Имеется ввиду я его открываю window.open с именем MyWindow.
    как еого закрыть потом из другой функции.

    Что-то поискал - не нашел (((.
      ExpandedWrap disabled
        win = window.open("123.htm", "MyWindow");
        win.close();
        ExpandedWrap disabled
          var MyWin = windows.open('http://localhost', 'MyWindow', '');
          MyWin.close(); // Можно применить из функции, если MyWin задана в глобальной области видимости
          // Насколько я помню, MyWindow - id объекта, так что из другой функции можно и так
          function myClose() {
          winObj = document.getElementById('MyWindow');
          winObj.close();
          }


        Добавлено
        P.S.: через document.getElementById() все-таки нельзя, имя окна можно использовать только в аттрибутах target HTML-тэгов. Так что только через хэндлер окна.
          Объявил var MyWin; как глоюальную.

          выполнил MyWin = window.open .....

          потом MyWin.Close();

          нее пашет!!!

          Поставим задачу поточнее:
          Мне необходимо при закрытии окна закрыть все окна, которые открвыались вызовом из этого.

          повесил на событие onUnLoad
          alert("Ok"); а вот закрытие нет.

          Как выполнить такое действие.
          Еще предложения )
            Цитата Zoran,9.12.04, 12:44 @
            Поставим задачу поточнее:
            Мне необходимо при закрытии окна закрыть все окна, которые открвыались вызовом из этого.

            Тогда сохранять объекты созданных окон в массиве. А потом уже просто проходиться по нему...
              Задача не в том, как хранить список открытых окон, а в том, чтоб их закрыть.
              Даже для одного, если я знаю его имя и открыл как MyWin = window.open...
              На Close он НЕ ЗАКРЫВАЕТ.

              Я не могу обратиться к этому окну. Вот и спрашиваю способ обращения!!!!!
                1. Исходники на стол.
                2. Браузер и фильтры - в некоторых браузерах есть возможность блокировать автоматическое открытие/закрытие окон ЯваСкриптами. Также бывают фильтры popup'ов.
                3. Даже
                ExpandedWrap disabled
                  var wh = window.open('my_page.html', 'myWindow');
                  wh.close();

                не работает?
                4. Регистр символов в JavaScript имеет значение. То есть использование Close() вместо close() недопустимо. Скорее всего, ошибка именно здесь.
                  Не, не получается
                  Цитата

                  //параметры: url, NameWindow, heigthWindow, widthWindow, toolbar(yes,no), scrollbars(yes,no)
                  function wopen(wurl,wname,h,w,tb,sb){
                  var LW = window.open(wurl,wname, 'height='+h+',width='+w+',toolbar='+tb+',resizable=0, scrollbars='+sb+',menubar=no,status=no').focus();
                  //window.alert("A + ', ' + B");
                  LW.close();
                  }


                  Вот код.
                  Пишет не допустимый символ в строке LW.close();

                  У меня в книжке Close(). Тогда пишет Undefined.

                  Дополнительный вопрос:

                  При открытии формы используется focus();
                  в 2000 винде все нормально, но при использовании XP окно если оно уже открывалось мигает в панели инструментов, но не всплывает! Это что, настройки броузера или как?
                    Скорее всего, браузер глючит. А в вызове window.open есть перенос строки? Если да - попробуй без переноса, JS этого не любит.
                      Не, переноса нет.
                      А на счет браузер глючит - это отмазка, она не принимается.

                      Буду мучаться (((((((((((((((. Будут у кого идеи - пишите!!!
                        Цитата
                        var LW = window.open(wurl,wname, 'height='+h+',width='+w+',toolbar='+tb+',resizable=0, scrollbars='+sb+',menubar=no,status=no').focus();

                        А зачем в конструкторе вызывается .focus() ? Может, так:
                        ExpandedWrap disabled
                          //параметры: url, NameWindow, heigthWindow, widthWindow, toolbar(yes,no), scrollbars(yes,no)
                          function wopen(wurl,wname,h,w,tb,sb){
                          var LW = window.open(wurl,wname, 'height='+h+',width='+w+',toolbar='+tb+',resizable=0, scrollbars='+sb+',menubar=no,status=no');
                          LW.focus();
                          //window.alert("A + ', ' + B");
                          LW.close();
                          }


                        Добавлено
                        У меня эта страничка работает как надо:
                        ExpandedWrap disabled
                          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                          "http://www.w3.org/TR/html4/loose.dtd">
                          <html>
                          <head>
                          <title>Untitled Document</title>
                          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                          <script language="javascript" type="text/javascript">
                          //параметры: url, NameWindow, heigthWindow, widthWindow, toolbar(yes,no), scrollbars(yes,no)
                          function wopen(wurl,wname,h,w,tb,sb){
                          var LW = window.open(wurl,wname, 'height='+h+',width='+w+',toolbar='+tb+',resizable=0, scrollbars='+sb+',menubar=no,status=no');
                          LW.focus();
                          //window.alert("A + ', ' + B");
                          LW.close();
                          }
                          </script>
                          </head>
                          <body>
                          <script>
                          wopen('http://localhost', 'MyWin', 500, 500, 0, 0);
                          </script>
                          </body>
                          </html>

                        Окошко открывается и тут же закрывается. Проверил в Опере, IE6, Mozilla.
                          Прикиньте:
                          .focus(); - действительно проблема в этом!!!
                          убрал и все заработало.
                          А почему так сделал??? - пример такой нашел ((((.

                          Всем спасибки )
                          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                          0 пользователей:


                          Рейтинг@Mail.ru
                          [ Script execution time: 0,0293 ]   [ 15 queries used ]   [ Generated: 14.05.24, 09:08 GMT ]