2015-05-29 2 views
0

Как написать функцию, которая будет отображать предупреждение, когда пользователь попытается покинуть страницу?Событие при выходе из страницы

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

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

Как я могу это сделать?

+1

'но они кажутся устаревшими' Как вы думаете? – Jonathan

+0

Вот еще некоторые сведения из раннего поста: http://stackoverflow.com/questions/2858057/javascript-function-on-web-page-close – Sly321

+0

'onbeforeunload' имеет это в виду, но держать в помните, что 99% сценариев, которые могут использовать это, действительно инвазивны, и его движение в сторону (следовательно, почему браузеры действительно не справляются с этим последовательно). 1% -ный сценарий, где он может быть ОК, - это когда есть недопустимая форма, которую пользователь будет жалеть о закрытии. В этом случае рассмотрите существующие библиотеки, которые ссылаются на «испорченность формы». – Anthony

ответ

3

Как написать функцию, которая будет отображать предупреждение, когда пользователь попытается покинуть страницу?

Единственный способ сделать это состоит в использовании onbeforeunload, и вы получите очень мало контроля: В принципе, вы можете поставить сообщение, которое, вероятно, (но только, вероятно, *) будет показано пользователю. Пользователь получит два варианта: идти вперед и уходить или оставаться.

onbeforeunload - очень необычное событие. Вот как вы подключите его:

window.onbeforeunload = function() { 
    if (youWantToShowAMessage) { 
     return "The message goes here."; 
    } 
}; 

Другой метод, который я думал об это выгрузить, или beforeunload события, но они, кажется устаревшим.

Я не знаю ни одного из тех, кто устарел. То, что вы можете do в них очень ограничено (по уважительной причине), но до замены есть onbeforeunload. Это полезная цель: она позволяет веб-странице сообщать пользователю, что они могут что-то потерять (например, несохраненную работу), когда они оставлять. Текущий механизм, который позволяет только сообщение и очень, очень немного других действий, является достойным: он ставит пользователя под контроль, но позволяет использовать эту страницу.


* Mozilla флиртовал, просто показывая общее сообщение, не показывая ваше сообщение.

Смежные вопросы