JQuery hashchange # Основная проблема - PullRequest
0 голосов
/ 26 июля 2011

Фон;

У меня есть приложение javascript, которое использует jQuery и, в частности, hashchange плагин (http://plugins.jquery.com/project/hashchange). Приложение «контролируется» значением хеш-функции в браузере, т. е. когда хеш-код изменяет приложение уведомляется и соответственно изменяет состояние.

Приложение используется для заполнения форм. Таким образом, пользователь проходит через все страницы формы и, наконец, прежде чем форма может быть отправлена, он видит "сводную" страницу, то есть страницу, содержащую все поля формы и введенную ценности. При переходе по страницам формы хэш изменяется как # 0, # 1, # 2 и и так далее (в зависимости от количества страниц в реальной форме, конечно). Резюме страница называется # сводка.

Теперь это прекрасно работает практически на всех платформах и браузерах. Однако когда работает на IE8 в Windows XP SP3 - возникает проблема:

Кажется, что всякий раз, когда хэш-часть URL-адреса изменяется на "#summary", Событие смены хеша не сработало.

Это было проверено с помощью точек останова в коде обработчика. Где страницы формы срабатывает нормально, со страницей сводки ничего не происходит. Как сказано, на всех остальных Конфигурации ОС и браузера это работает нормально.

У меня есть две идеи, которые можно опробовать, но ни одна не может быть реализована без некоторых усилия по развитию (что является дефицитным ресурсом в проекте).

  1. Попробуйте другой плагин для изменения хеша. Похоже, hashchange взят из "истории" плагин. Так что, может быть, я мог бы попробовать это - или, может быть, есть другие предложения?

  2. Измените имя страницы сводки на другое, например, # Проверка.

Оба эти звука звучат несколько обособленно, отсюда и этот пост. Комментарии или предложения очень приветствуются.

Спасибо заранее, Мадс

1 Ответ

1 голос
/ 26 июля 2011

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

Первый DavisJS с расширением маршрутизации хеша Это то, что я использовал и рекомендовал несколько раз.

Существует также приложение Saner HTML5 History от Ben Cherry , которое представляет собой немного более легкую библиотеку, а не целую инфраструктуру маршрутизации на стороне клиента, такую ​​как davis.

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