Javascript - подтверждение при выходе со страницы - PullRequest
3 голосов
/ 01 июля 2010

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

Я понимаю, что это, как правило, осуждается, но у меня есть веская причина хотеть сделать это.

Я получил его с помощью следующего кода:

function confirm_exit(e) {
        if(!e) e = window.event;

        e.cancelBubble = true;
        e.returnValue = 'Are you sure you want to leave?'; 

        if (e.stopPropagation) {
            e.stopPropagation();
            e.preventDefault();
        }
    }

Однако, что я действительно хотел бы сделать, это отображать сообщение всякий раз, когда они покидают страницу, ЕСЛИ они не уходят, нажимая одну из двух ссылок.

(Я только что понял, что звучит так, будто я хочу заставить их нажать на объявление или что-то в этом роде!)

Причиной использования этого является завершение процесса бронирования, когда пользователи могут либо подтвердить свое бронирование, либо добавить дополнительные заказы до подтверждения. (Это были бы две возможности, которые я НЕ хотел бы отображать во всплывающем сообщении, во всплывающем сообщении просто говорилось бы что-то вроде «Ваше бронирование еще не подтверждено, вы уверены, что хотите выйти?).

Есть ли способ достичь этого?

Любой совет приветствуется.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 18 апреля 2013

Функция окна .unload поможет нам выполнить некоторый JavaScript при закрытии браузера или перенаправлении на любую другую страницу. ресурсы: http://api.jquery.com/unload/

2 голосов
/ 01 июля 2010

В голове:

<head>
...
<script type="text/javascript">
var disabledConfirm_exit=false;
</script>
</head>

В две разрешенные ссылки вы можете добавить

onclick="disabledConfirm_exit=true;"

А внутри подтвердить_вход

function confirm_exit(e) {
    if(disabledConfirm_exit) return;
    if(!e) e = window.event;

    e.cancelBubble = true;
    e.returnValue = 'Are you sure you want to leave?'; 

    if (e.stopPropagation) {
        e.stopPropagation();
        e.preventDefault();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...