<MyRusakov.ru />

React JS, Redux, ES2015 с Нуля до Гуру

React JS, Redux, ES2015 с Нуля до Гуру

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

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

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

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

Подписавшись по 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-код ссылки для форумов (например, можете поставить её в подписи):

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

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

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

Ответить

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