<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

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

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Обработка закрытия вкладки

Обработка закрытия вкладки

У меня уже несколько раз спрашивали, как можно обработать закрытие вкладки. Допустим, пользователь хочет закрыть Ваш сайт, а Вы делаете какое-нибудь всплывающее окно и спрашиваете: "А Вы уверены?", или делаете редирект на другой сайт. Разумеется, эти методы очень сильно раздражают пользователей, поэтому рекомендую не использовать их. К счастью, браузеры это так же очень плохо обрабатывают, однако, кое-какие возможности по обработке закрытия вкладки всё-таки имеются.

Есть возможность спросить у пользователя: "Уверен ли он, что хочет закрыть страницу?". Вот как можно реализовать такую обработку закрытия вкладки:

<script type="text/javascript">
  window.onbeforeunload = function() {
    return "Что-нибудь сообщить пользователю";
  }
</script>

Вот такой код будет работать в Firefox, IE, Chrome, но не будет работать в Opera (этот браузер onbeforeunload вообще никак не обрабатывает). При этом сама функция обработки может только возвращать строку, то есть никаких редиректов там не сработает.

Возвращаемая строка будет выводиться в окне подтверждения в Chrome и IE. В Firefox эта строка никак себя не проявляет.

Вот таким образом можно обрабатывать закрытие вкладки, однако, возможности здесь очень сильно ограничены, что, на мой взгляд, очень и очень хорошо.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (8):

lev_100rus lev_100rus 24.06.2013 16:24:27

У вас тут ошибка "При этом сама функции"

Ответить

Admin Admin 24.06.2013 19:08:46

Спасибо, исправил!

Ответить

Fly Fly 03.07.2013 17:58:43

Михаил, это так и должно быть? Написал себе код на свой сайт, и это окно высвечивается, не только при попытки закрытия вкладки. Дело в том что пытаясь перейти по ссылке на сайте, которая не выгоняет пользователя на другой сайт, это окно, нахально вылезает.

Ответить

Admin Admin 03.07.2013 20:19:14

Да, так и должно быть.

Ответить

Fly Fly 03.07.2013 21:54:59

Тогда никаких притензий, похоже код обрабатывает не закрытие вкладки, а переход на другой URL.

Ответить

karhan karhan 09.06.2015 10:47:09

Как добавить туда ажакса ? У меня вот такой код: window.onbeforeunload = function() { if (!window.btn_clicked || !window.linkClicked) { var lg="out"; $.ajax({ url: 'http://localhost/mvc/ajax/', type: "POST", async: true, datatype: "html", data: 'lg='+lg, }); return "Are you sure you want to leave the page?"; } }; но тут при нажатии отмены ажакс работаеть

Ответить

YULIS007 YULIS007 11.08.2015 17:40:28

Михаил, подскажите пожалуйста, как усовершенствовать этот код, так чтобы это работало только при закрытии страницы на которую ставишь, и не срабатывало на переход на другую ссылку, заполненную форму и нажатие кнопки "Отправить". Заранее премного благодарен!

Ответить

samvel29 samvel29 24.03.2019 22:48:04

Это событие срабатывает и просто при обновлении страницы

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.