2010-10-22 3 views
6

Как я могу задать вопрос пользователю Вы уверены, что хотите покинуть страницу?Как я могу попросить веб-пользователя подтвердить, действительно ли он хочет покинуть страницу?

Как, например, если вы нажмете кнопку «Назад», задавая вопрос о Stackoverflow?

+0

Ваш вопрос не имеет большого смысла, вы имеете в виду, что он проверяет вопрос, не нажимая кнопку отправки? – Elliott

+0

Я думаю, что он означает диалоговое окно подтверждения, которое вы получаете, когда вы на полпути через вопрос о SO и нажимаете кнопку своего браузера –

+0

@ Elliott, вопрос имеет большое значение. Если в поле «Ваш ответ» есть текст, и вы удаляетесь от страницы, даже с браузером, он будет предупреждать вас. –

ответ

4

Самый простой способ сделать это - привязать обработчик события к событию «разгрузить» JavaScript. jQuery делает это очень легко сделать с его .unload() event handler. В методе, который вы связываете, вы можете проверить, есть ли в поле формы страницы ввод текста. Предполагая, что они вызывают предупреждение, уведомляющее пользователя, они потеряют несохраненные данные, если они перемещаются со страницы.

Этот метод будет вызывать предупреждение, когда пользователь по какой-либо причине перейдет от страницы.

$(window).bind('beforeunload', function() { 
    alert('Handler for .beforeunload() called.'); 
}); 

Это, очевидно, не очень удобно, но несколько быстрых модификаций могут сделать его работоспособным на ваш вопрос.

+0

как мы это сделаем, если пользователь что-то редактирует? –

+2

Я думаю, вы обнаружите, что событие 'unload' слишком поздно, чтобы пользователь не уходил. Вам нужно использовать событие onbeforeunload. Также вы не можете использовать jquery для привязки к 'onbeforeunload' во всех браузерах – rojoca

+0

, поэтому вы хотите сказать, что вместо jQuery вместо jQuery используется jQuery из-за совместимости с браузером –