Показано с 1 по 14 из 14

Тема: Автозакрытие окна

  1. #1

    Регистрация
    15.10.2006
    Сообщений
    80
    как сделать автоматическое закрытие окна на джаваскрипте непосредственно после того, как уже выполнился пхп-код?

  2. #2

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Сообщений
    769
    э. это что-то из ajax

  3. #3

    Регистрация
    15.10.2006
    Сообщений
    80
    понятн))

  4. #4

    Регистрация
    11.02.2007
    Адрес
    Донецк, Украина
    Сообщений
    96
    Originally posted by xmagnusx@Jun 9 2007, 11:01
    как сделать автоматическое закрытие окна на джаваскрипте непосредственно после того, как уже выполнился пхп-код?
    <div align='right'>[Только зарегистрированные пользователи могут видеть ссылки. ]
    [/quote]
    простейший вариант - вызов close() сразу после php-скрипта. смотря что именно ты хочешь сделать.

    <div class='quotetop'>Цитата</div>
    э. это что-то из ajax[/b]

  5. #5

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Сообщений
    769
    Originally posted by Scorched.dn.ua@Jun 10 2007, 00:03
    [b]простейший вариант - вызов close() сразу после php-скрипта. смотря что именно ты хочешь сделать.
    и что?
    ну просто гениальный ход - отправить клиенту документ, закрывающий окно.
    кто успел прочесть - тот молодец

    думаю автор темы имеет ввиду, что по отправки какой-либо формы запускается скрипт на сервере и по его выполнении окно, содержавшее форму, должно быть закрыто. не понятно, правда, зачем это надо...

    xmagnusx, поясните ваш вопрос, пожалуйста.

  6. #6

    Регистрация
    11.02.2007
    Адрес
    Донецк, Украина
    Сообщений
    96
    null
    ну просто гениальный ход
    спасибо. я знал, что ты оценишь

    идея проста. например, если на сервере происходит какое-либо длительное событие. допустим дамп бд или просто объемные вычисления, то можно открывать файл со скриптом в другом окне, в котором будет написано что-нибудь вроде "подождите плз", а затем оно само закрывается.

    Вот простой пример:

    index.php
    Код:
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/xml; charset=utf-8" />
    <title>Долгоработающий пхп-скрипт</title>
    
    ****<script type="text/javascript">
    ****
     *function startlongphpscript() {
     *****window.open(
     * *"longphpscript.php",
     * *"w",
     * *"location=0,status=0,scrollbars=0,width=400,height=100"
     *****);
     *} *
     *
    ****</script>
    
    </head>
    <body>
    
    ****
    
    Нажми на кнопку, и я начну долго вычислять факториал большого числа.</p>
    ****<input type="button" value="кнопка" onclick="startlongphpscript();" />
    
    </body>
    </html>
    longphpscript.php
    Код:
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/xml; charset=utf-8" />
    <meta http-equiv="Pragma" content="no-cache" />
    <title>Долгоработающий пхп-скрипт</title>
    </head>
    <body>
    
    
    
    Вычисляем факториал большого числа</p>
    <hr />
    
    
    <?php
    ****ob_implicit_flush();
    ****
    ****$n = 50000000; *****// большое число..
    ****$res = 1;
    ****
    ****$iters = $n/100; $percent = 0; 
    ****
    ****for( $i = $n; $i > 0; $i--,$iters-- ) {
     *$res = $res * $i;
     *if( $iters == 0 ) {
     *****$iters = $n/100;
     *****$percent++;
     *****
     *****echo &#39;<script type="text/javascript">document.body.innerHTML = 
     * *"
    
    уже посчитано &#39;.$percent.&#39;% факториала большого числа..</p>"</script>&#39;;
     *}
    ****}
    ?>
    
    <script type="text/javascript"> close(); </script>
    
    </body>
    </html>

  7. #7

    Регистрация
    15.10.2006
    Сообщений
    80
    в окне - форма для редактирования... изменения сохраняются... -> и закрывается

  8. #8

    Регистрация
    11.02.2007
    Адрес
    Донецк, Украина
    Сообщений
    96
    в окне - форма для редактирования... изменения сохраняются... -> и закрывается
    ну вот ваш скрипт-обработчик формы, в случае если данные успешно добавлены, говорит

    Код:
    echo &#39;<script type="text/javascript">close();</script>&#39;;

  9. #9

    Регистрация
    15.10.2006
    Сообщений
    80
    ))) я уже понял, что ступил..... спасибо всем))

    и ещё вопрос: как перед закрытием этого окна передать обновление другой странице?
    заранее спасибо...

  10. #10

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Сообщений
    769
    т. е. пользователь, надавив на кнопку, долго ждет пока загрузится документ с результатом (сервер долго не отвечает - он считает факториал), затем получает страничку со текстом "Вычисляем факториал большого числа уже посчитано 100% факториала...", которая тут же закрывает окно. так?
    хм...

  11. #11

    Регистрация
    11.02.2007
    Адрес
    Донецк, Украина
    Сообщений
    96
    и ещё вопрос: как перед закрытием этого окна передать обновление другой странице?
    после close() объект окна продолжает существовать. поэтому можно например воспользоваться объектом opener, который соответствует объекту window окна, из которого было открыто наше. с его помощью можно сделать рефреш.

    null
    т. е. пользователь, надавив на кнопку, долго ждет пока загрузится документ с результатом (сервер долго не отвечает - он считает факториал), затем получает страничку со текстом "Вычисляем факториал большого числа уже посчитано 100% факториала...", которая тут же закрывает окно. так?
    хм...
    просто запусти это и увидишь как ))
    пока интеграл считается, пользователь видит сколько процентов уже посчитано. этого мы добиваемся, выключая буферизацию вывода в пхп и используя тот факт, что браузеры рендерят контент сразу по мере получения его от сервера.
    если запустить мой пример, можно будет увидеть постепенное изменение значения % прогресса. наконец, когда доходим до 100% окно закрывается. несколько скачкообразное, но без асинхронных js-запросов более плавного не добиться.

    если мой пример, зачем нужно отправлять close(), тебе не понравился, то вот практическая ситуация Магнуса еще лучше это иллюстрирует

  12. #12

    Регистрация
    15.10.2006
    Сообщений
    80
    а не могли бы Вы код скинуть... а то я не оч силён в джаваскрипте..
    opener.???

  13. #13

    Регистрация
    11.02.2007
    Адрес
    Донецк, Украина
    Сообщений
    96
    opener.location.reload(true);

  14. #14

    Регистрация
    15.10.2006
    Сообщений
    80
    спасибо.. я без location пробывал)))

Похожие темы

  1. Окна
    от Akinau в разделе Бюро находок
    Ответов: 0
    Последнее сообщение: 15.01.2014, 15:09
  2. Окна
    от Akinau в разделе Фирменный стиль
    Ответов: 0
    Последнее сообщение: 15.01.2014, 13:57
  3. Пластиковые Окна
    от f1lter в разделе Дизайн сайтов
    Ответов: 14
    Последнее сообщение: 22.10.2009, 21:56
  4. Ширина окна - предел?
    от Kiosuki в разделе Вёрстка сайта
    Ответов: 2
    Последнее сообщение: 13.02.2008, 21:21
  5. ОКНА РОСТА!
    от Yokoo в разделе Флейм
    Ответов: 6
    Последнее сообщение: 22.06.2004, 14:31

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •