Я осматривал библиотеки JQuery для хеша URL, но не нашел ни один, что было хорошо. Существует "плагин истории", но все мы знаем, что это - багги и не гибко.
Я загружаю свои страницы в отделении. Мне будет нужен способ сделать назад/вперед наряду с хешированием URL.
mydomain.com/#home
mydomain.com/#aboutus
mydomain.com/#register
Какова лучшая библиотека, которая может обработать все это?
Недавно я просмотрел 3 разных плагина - плагин истории jquery , история и jQuery BBQ .
Все они были довольно сложными в настройке, я действительно заставил jQuery.history работать, но у него все еще были проблемы с IE7. Поэтому я перешел на BBQ, и он отлично работал во всех наших целевых браузерах (IE6, IE7, IE8, Fx3).
Поэтому я рекомендую плагин jQuery BBQ.
Изменить: вот сообщение в блоге , которое я только что написал, демонстрирует jQuery BBQ с каскадными раскрывающимися списками.
Мне повезло с reallysimplehistory (он же dhtmlHistory). Он не специфичен для jQuery, но работает в IE, firefox и webkit, и не требует много настроек.
AFAIK, все плагины истории делают одно и то же:
setInterval(function() {
if(theHashChanged) {
someFunction(oldHash,newHash);
}
}, 500/*whatever*/);
В этом суть (за исключением хаков браузеров для добавления записей в историю без нажатия на ссылку и т.д.). Это всегда будет глючить, потому что это немного хак, и нет кросс-браузерного API для обработки изменений истории.
Вдобавок ко всему, пользовательский опыт для такого рода вещей не очень хорош. Пользователи не понимают, когда им приходится 4 раза нажимать кнопку "назад", чтобы уйти со страницы.
Возможно, попробуйте этот плагин истории jQuery: https://github.com/balupton/jquery-history/ Он обеспечивает кроссбраузерную поддержку, привязку к хешам, перегрузку хешей и все остальное.
Для него также есть расширение Ajax, позволяющее легко преобразовать вашу веб-страницу в подходящее приложение Ajax: https://github.com/balupton/jquery-ajaxy/
В целом это хорошо документировано , поддерживаемый и многофункциональный. Здесь также был выигран вопрос о награде Как показывать запросы Ajax в URL?
Или, если вы хотите использовать API истории HTML5, есть: https://github.com/browserstate/history.js