2016-08-27 2 views
1

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

window.onbeforeunload = function (e) { 
    return confirm("Are you sure you want to leave this page?"); 
}; 

Это не работает в любом светлячок или хром. В firefox всплывающее окно не появилось. И в хром по умолчанию тоже не было переопределено. Я даже попытался использовать следующий код, но безрезультатно:

window.onbeforeunload = function (e) { 
    var dialogText = 'Are you sure about this?'; 
    e.returnValue = dialogText; 
    return dialogText; 
}; 

Как решить эту проблему? Любые фрагменты кода были бы полезны. Спасибо.

+0

Возможный дубликат [Как создать всплывающее окно, когда браузер закрыть] (http://stackoverflow.com/questions/4067796/how-to-create-popup-window-when-browser -close) – Matthijs

+0

Возможный дубликат [Попытка обнаружения события закрытия браузера] (http://stackoverflow.com/questions/20853142/trying-to-detect-browser-close-event) – Bobulous

+0

Об этом уже ответили в этом подобном сообщении http : //stackoverflow.com/questions/10310177/showing-a-jquery-popup-before-browser-window-closes –

ответ

1

Я нашел этот фрагмент в интернете:

window.onbeforeunload = function (e) { 
     return "Please click 'Stay on this Page' if you did this unintentionally"; 
    }; 

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

0

Из документации в Firefox:

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

Вы не можете отображать всплывающие окна, если пользователь ранее не взаимодействовал со страницей.

1

Начиная с Firefox 4, Chrome 51, Opera 38 и Safari 9.1 вместо возвращаемой строки будет показана общая строка, не находящаяся под управлением веб-страницы. Например, Firefox отображает строку «Эта страница просит вас подтвердить, что вы хотите уйти - данные, которые вы ввели, могут не быть сохранены».

- от Mozilla Developer Docs