Я использую sammy.js с моим веб-приложением asp.net mvc для маршрутизации на стороне клиента, чтобы обеспечить удобство работы на одной странице. Я создал демонстрационное приложение, которое отлично работает в IE9+ и других современных браузерах. Однако при работе в IE8 на XP и Win7 я сталкиваюсь со странной проблемой. Просматривая этот демонстрационный сайт, IE8 запоминает навигацию вперед и назад для начального просмотра, а затем полностью забывает об истории просмотра или шагах, которые я предпринял, чтобы добраться до текущей страницы. Таким образом, кнопка «Назад» отключается, поскольку история посещений не связана. Этого не происходит в других браузерах, и они запоминают страницы, которые я просматриваю.

Это ссылка на сценарий, который я написал, где я определил мои маршруты sammy.js.

Структура моего приложения такова: пользователь:

  • приходит на http://www.abc.com/
  • отображается страница входа в систему согласно #/ route
  • если аутентифицировано, отображается домашняя страница, которая является результатом действия поста ajax.
  • На домашней странице есть много вариантов, чтобы перейти на страницу сведений, которая является результатом действия поста ajax.

Теперь IE8 запоминает только некоторые из этих шагов, но продолжает самостоятельно удалять элементы истории в сеансе просмотра. Я пытался использовать скрипт отладчика IE, и не было обнаружено никаких ошибок.

На каждом маршруте я также пытался использовать alert(history.length); который дает другое случайное число, которого я не ожидал, как +1 каждый раз, когда я посещаю новую страницу. Затем я нашел эту информацию о поддержке на веб-сайте Microsoft. Отключение функции автоматического восстановления после сбоя не помогло в этом случае.

Я не могу выяснить причину этой странной проблемы. Коды отлично работает для других браузеров. Я также попытался сбросить IE8 на XP и Win7.

Было бы очень полезно, если бы кто-нибудь мог сказать мне, что я упускаю или делаю неправильно.

ура

1 ответ1

0

Я действительно пробовал много вещей, чтобы определить любую возможную причину проблемы выше. Даже переписал весь мой код навигации JavaScript и проверил код на стороне сервера.

Но единственное место, где я получил решение, находится на сайте: Enhanceie, в котором говорится, что в IE8 есть ошибка, которая выглядит следующим образом:

IE0012: IE Travellog прерывается при переходе назад / назад от страницы с большой формой POST. Если есть поле ввода формы со значением, превышающим 523 659 символов, при переходе от страницы, IE может очистить журнал путешествий текущего сеанса (аналогично в историю), отключив кнопки назад и вперед. Репродукции в IE6 и IE7.

Существуют следующие решения, к которым вы можете обратиться:

  • Проверьте поле ввода, содержащее много символов, как указано выше, и решите свою проблему.
  • Если у вас есть контроль над системой, в которой будет использоваться IE8, вы можете добавить следующий раздел реестра на этом компьютере. Не существует существующего ключа, поэтому вам нужно добавить новый:

    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\TravelLog] "MaxSize" = dword:ffffffff

Я очень рад найти эту информацию, так как потратил очень много времени на решение этой проблемы. Надеюсь, это кому-нибудь поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .