История Ajax на IE6 / 7 не работает - PullRequest
1 голос
/ 17 ноября 2010

Я программирую свою собственную библиотеку истории Ajax в JS.Я столкнулся с проблемами с IE6 и IE7.Может кто-нибудь уточнить, почему происходит следующее?

IE6 & 7

Я могу установить значения хеш-функции без обновления страницы.

window.location = 'site.com/index.html#' + pageNumber;

Я могу перейти на страницу 1, страницу 2, страницу 3 и так далее.Когда я нахожусь на странице 3 и нажимаю кнопку «Назад», я не возвращаюсь обратно на страницу 2. Скорее, я полностью удален из index.html!Похоже, что IE не думает, что разные значения хеша являются разными точками в истории.

IE7

IE8 в режиме обратной совместимости IE7 утверждает, что у него есть слушатель onhashchange.

if ('onhashchange' in window) {
   // true in IE7
   window.onhashchange = someFunction();
}

Однако IE7 никогда не выполняет someFunction () при изменении URL-адреса.Это подразумевает, что он заключается в наличии onhashchange, но никогда не реализовывал его.

Ответы [ 2 ]

2 голосов
/ 17 ноября 2010

Вы пробовали это: http://tkyk.github.com/jquery-history-plugin/

1 голос
/ 17 ноября 2010

IE6 и IE7, как известно, не поддерживают событие hashchange; похоже, вы нашли ошибку (?) в режиме совместимости IE7 с IE8.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...