Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   предупреждение пользователю если он кликнул стрелку "назад" в браузере. (https://javascript.ru/forum/events/3138-preduprezhdenie-polzovatelyu-esli-kliknul-strelku-nazad-v-brauzere.html)

greysells 21.03.2009 20:32

предупреждение пользователю если он кликнул стрелку "назад" в браузере.
 
Здравствуйте, я в js не силен. Подскажите как реализовать следующее.
на странице размещена анкета пользователя, реализована форомой. Данные полей при сабмите сохраняются в сессии.

Как вывести предупреждение пользователю о предварительном сохранении данных, если он кликнул стрелку "назад" в браузере, и любые другие ссылки на странице кроме submit.
---------------------------------
цель - повысить удобство для пользователя на сайте. есть для пользователя объемная анкета. вот допустим он ее заполняет... и захотел перейти на другую страницу сайта, а потом сразу вернуться назад и продолжить заполнять анкету. Что бы набранные пользователем данные полей в анкете сохранялись, при сабмите они сохраняются в сессии. Но как мне их сохранить, если пользователь захочет кликнуть на любую другую ссылку , постовские значения то не сформируются.
-----------------------------------------------------------
НАПРИМЕР: набрал он свое "имя" в поле и кликнул на "главная", просто так... почитать, а потом решил продолжить заполнение , снова кликнул на "анкета" , а там в поле "имя" уже присутствует его имя. ))

Андрей Параничев 22.03.2009 16:51

Сохраняйте анкету в "теневом" режиме, через XMLHttpRequest отправляя значения полей, при их изменении (событие change).

В некоторых браузерах у документа существует событие beforeunload, которое возникает при попытке перейти куда-нибудь со страницы, или закрыть её. Но это событие не кросс-браузерно, так что полагаться на него особо не стоит.

ZoNT 22.03.2009 20:15

кроссбраузерно (кроме Оперы) onbeforeunload

Kolyaj 22.03.2009 22:08

Цитата:

Сообщение от ZoNT
кроме Оперы

Частично кроме оперы ;)


Часовой пояс GMT +3, время: 23:10.