Принудительная загрузка страницы даже при посадке путем перехода назад (кнопкой «Назад»)

Я в отчаянии из-за следующей проблемы: Какого черта :-) .. могу ли я заставить мою страницу перезагружаться каждый раз, чтобы попасть на нее? У меня есть ввод, который автоматически заполняется текстом из localStorage, если установлено это значение. И у меня есть ссылки на моей странице на другие страницы. Итак (просто пример), возможно, пользователь нажимает на pagexyz.com, а затем решает вернуться на мой сайт, нажав кнопку «Назад». Я пробовал много вещей, но не могу заставить мой кусок javascript выполняться.

Решение, данное здесь, мне не помогло.

Это не помогло.

Так что еще делать? Я попытался установить все метатеги, связанные с кешем — должен же быть способ выполнить js при вызове страницы!?

Так что благодарен за любую подсказку! шлюха


person ho.s    schedule 16.02.2012    source источник
comment
Не вижу причин, по которым Вопрос в вашем утверждении Эти не помогли. не будет работать для вас? Почему это не сработало, когда вы попробовали?   -  person SpaceBison    schedule 16.02.2012
comment
Похоже, вы пытаетесь сбросить свою форму? stackoverflow.com/questions/680241 /   -  person Roko C. Buljan    schedule 16.02.2012
comment
@SpaceBison: я думаю, потому что весь скрипт и загрузка просто НЕ выполняются   -  person ho.s    schedule 16.02.2012


Ответы (1)


Проблема заключается в том, что при переходе назад с помощью кнопки «Назад» в браузере обычно не срабатывает событие onload страницы, а также не выполняется код JS в глобальной области.

Одно из возможных решений, которое широко используется для так называемого «взлома истории хэшей»: начать интервал с setInterval(), который проверяет каждые (скажем) 500 мс изменение хэша и обновляет содержимое в соответствии с хешем.

При обычном обновлении контента вам придется установить хэш вручную (window.location.hash="..."). И при начальной загрузке страницы (возможно, из закладки) вам нужно будет проверить window.location.hash и соответственно загрузить контент.

person devnull69    schedule 16.02.2012
comment
вы спасли мой день, большое спасибо! я реализовал метод setInterval даже между моим $(document).ready и проверкой значения моего входного текста. если он пуст, я заполняю текстом localStorage. когда я теперь приземляюсь из Google или где-либо еще с помощью кнопки «Назад», этот метод всегда выполняется, и я останавливаю его, когда значение установлено. отличный! теперь я просто пытаюсь понять: почему функция setInterval всегда выполняется, но никакая другая часть js, которую я пробовал? - person ho.s; 16.02.2012
comment
все обработчики событий будут по-прежнему работать (например, нажатие кнопки по-прежнему будет запускать соответствующий метод), а функция setInterval - это просто еще один обработчик событий... автоматически, а не вручную, но все же - person devnull69; 16.02.2012
comment
огромное спасибо. я должен был это знать или прийти к этому, но... был болваном :-) - person ho.s; 16.02.2012