2014-01-17 2 views
0

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

Если бы я использовал текстовые области, флажки и т. Д., Тогда браузер предупредил пользователя. Как сообщить браузеру предупредить пользователя в моем случае?

+0

установить флажок после изменения, проверить перед выходом на страницу. – dandavis

+0

вам нужно событие 'onbeforeunload' – rafaelcastrocouto

+0

О, спасибо за помощь всем. Я попытался, но не нашел ответа здесь. – Leo

ответ

5

В приведенном ниже примере вы можете использовать глобальную переменную типа unsavedChanges. Затем вам нужно установить эту переменную, если пользователь что-либо изменит. Или в любом случае, когда вы хотите, чтобы это подтверждение до того, как пользователь закроет веб-страницу.

var unsavedChanges = 0; 
window.onbeforeunload = function (e) { 
    if(unsavedChanges != 0){ 
     e = e || window.event; 

     // For IE and Firefox prior to version 4 
     if (e) { 
      e.returnValue = 'There is some unsaved changes!'; 
     } 

     // For Safari 
     return 'There is some unsaved changes!'; 
    } 
}; 
+0

Спасибо, да, это то, что сказано выше. Какая практика здесь сейчас, должен ли я выбирать это как ответ, или? (На это уже ответили.) – Leo

+0

ohh! Я не видел, чтобы кто-то ответил уже. –

+0

Ваш ответ был очень желанным. Я просто не знаю, как быть справедливым для вас и других ... ;-) – Leo

0

Браузеры обычно получают эту информацию через HTTP-заголовки, отправленные со страницы.

Например, заголовок Last-Modified сообщает браузеру, сколько лет на странице. Браузер может отправить простой запрос HEAD на страницу, чтобы получить последнее модифицированное значение. Если он новее, чем браузер в кеше, браузер может его перезагрузить.

Существует также множество других заголовков, связанных с кешированием (например, Cache-Control). Выезд: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

+1

Я думаю, что они говорят о том, что пользователь модифицирует/заполняет формы на странице, не изменяя собственно страницу. – Xymostech

+0

Спасибо Code Lover, но ситуация как @Xymostech объясняется выше. – Leo

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