Как написать функцию, которая будет отображать предупреждение, когда пользователь попытается покинуть страницу?
Единственный способ сделать это состоит в использовании onbeforeunload
, и вы получите очень мало контроля: В принципе, вы можете поставить сообщение, которое, вероятно, (но только, вероятно, *) будет показано пользователю. Пользователь получит два варианта: идти вперед и уходить или оставаться.
onbeforeunload
- очень необычное событие. Вот как вы подключите его:
window.onbeforeunload = function() {
if (youWantToShowAMessage) {
return "The message goes here.";
}
};
Другой метод, который я думал об это выгрузить, или beforeunload события, но они, кажется устаревшим.
Я не знаю ни одного из тех, кто устарел. То, что вы можете do в них очень ограничено (по уважительной причине), но до замены есть onbeforeunload
. Это полезная цель: она позволяет веб-странице сообщать пользователю, что они могут что-то потерять (например, несохраненную работу), когда они оставлять. Текущий механизм, который позволяет только сообщение и очень, очень немного других действий, является достойным: он ставит пользователя под контроль, но позволяет использовать эту страницу.
* Mozilla флиртовал, просто показывая общее сообщение, не показывая ваше сообщение.
'но они кажутся устаревшими' Как вы думаете? – Jonathan
Вот еще некоторые сведения из раннего поста: http://stackoverflow.com/questions/2858057/javascript-function-on-web-page-close – Sly321
'onbeforeunload' имеет это в виду, но держать в помните, что 99% сценариев, которые могут использовать это, действительно инвазивны, и его движение в сторону (следовательно, почему браузеры действительно не справляются с этим последовательно). 1% -ный сценарий, где он может быть ОК, - это когда есть недопустимая форма, которую пользователь будет жалеть о закрытии. В этом случае рассмотрите существующие библиотеки, которые ссылаются на «испорченность формы». – Anthony