Нажатие кнопки «назад» не запускает OnLoad <body> - PullRequest
3 голосов
/ 09 ноября 2009

Моя корзина покупок отображает (1) анимацию «Обработка заказа ...» после того, как было отправлено (2) и карта обрабатывается в php-скрипте. Однако есть ошибка, возникающая, когда пользователь зашел на страницу «заказ принят» и нажал кнопку «Назад». Анимация «Обработка заказа ...» по-прежнему отображается.

(1) Дисплей обработки отображается как:

<div style="position:absolute;display:none;" id="animation">
    <img src="animation.gif"/>
</div>

(2) При отправке кнопки используется JavaScript:

onClick="document.getElementById('animation').style.display='block';
         document.the_form.submit();"

Итак, кнопка нажата, анимация отображается, форма отправлена, карта обработана, и пользователь находится на новой странице.

Когда пользователь нажимает назад, мы должны ожидать страницу без анимации. Но onLoad не запускается, и последнее состояние анимации (отображается) сохраняется.

Есть идеи, как удалить анимацию, когда пользователь возвращается на страницу?

Ответы [ 2 ]

3 голосов
/ 17 ноября 2009

Вдохновленный комментарием Адама А, вы можете скрыть анимацию, когда пользователь покидает страницу (я думаю, через отправку формы это нормальный маршрут), поэтому если / при возвращении на страницу анимация не отображается .

Одним из способов достижения этого является добавление скрывающего кода в событие onunload тела HTML.

<body onunload="document.getElementById('animation').style.display='none';">
1 голос
/ 09 ноября 2009

В большинстве современных браузеров повторное нажатие не перезагружает страницу, оно просто отображает ее из памяти в момент последнего ее запоминания (поскольку это, вероятно, будет желаемое поведение).

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

...