2010-08-30 4 views
5

У меня есть клиент, который только что получил Apple Magic Mouse. Мы создали сайт рецептов, и она очень расстроилась, когда она вводит всю информацию для рецепта, затем идет за новой мышью и случайно прокручивает вправо, и она будет делать Back Browse, и вся информация будет потеряна. Поэтому она хочет предупредить/всплывать, чтобы это не происходило на этой странице.Предотвратить случайный просмотр Назад

Любые предложения или указание мне на какой-то JS, который это делает?

ответ

11

Это базовый сценарий «предупреждать перед отъездом». Когда пользователь нажимает клавишу в текстовом поле, пользователь будет уведомлен, если он (а) собирается покинуть страницу:

<script type="text/javascript"> 
var changes = false; 
window.onbeforeunload = function(){ 
    if(changes){ 
     return "You're about to leave this page."; 
    } 
}; 
</script> 
<textarea onkeypress="window.changes=true">recipe here</textarea> 

В качестве альтернативы, вы можете сохранить содержимое текстового поля в переменном, когда странице нагружает и сравнивает его впоследствии. Это устранит некоторую путаницу, когда посетитель просто нажимает клавиши со стрелками в текстовом поле, фактически не изменяя его.

+0

+1 это как gmail и т. Д. Сделайте это тоже. –

+0

Да, если есть храбрые харты, которые попадают по этому устаревшему коду, WebKit (Google Chrome, Safari) не поддерживает beforeunload с помощью 'addEventListener'. – Lekensteyn

+0

Единственный надежный способ - установить onbeforeunload как свойство окна. Поскольку для каждой страницы должно быть только одно, нет причин, по которым вы бы хотели использовать addEventListener. –

0

Поэтому она хочет предупредить/всплыть, чтобы это не происходило на этой странице.

Вы можете подключиться к событию onBeforeUnload вашего браузера, а затем показать сообщение.