Существуют ли библиотеки javascript для работы с URL-адресами hashbang / shebang (#!)? - PullRequest
15 голосов
/ 16 февраля 2011

Со всей негативной прессой в Twitter и использованием Gawker URL-адресов hashbang мне очень трудно найти какие-либо примеры / библиотеки для того, как на самом деле их использовать.

Я бы хотел использовать URL-адреса hashbang в карусели javascript на нашем веб-сайте, чтобы мы могли ссылаться непосредственно на определенную страницу карусели.

Существуют ли какие-либо хорошие межбраузерные библиотеки или примеры (желательно не jQuery, поскольку мы используем Prototype) для передачи новых URL-адресов в расположение страницы и для анализа URL-адреса при загрузке страницы?

Ответы [ 4 ]

6 голосов
/ 30 марта 2011

Мы работаем над библиотекой, которая выполняет сопоставление маршрута URL: https://github.com/OpenGamma/RouteMap, если вы все еще ищете его.

1 голос
/ 17 февраля 2011

Sammy.js использует их для создания обработчиков, подобных используемым в Sinatra .

0 голосов
/ 27 августа 2012

В Google Closure Library действительно классная реализация стека истории браузера.Вы можете получить исходный код истории отсюда .

Чтобы использовать менеджер истории библиотеки Closure, вы должны определить скрытый ввод.Здесь есть хитрость.Если вы не передадите поле ввода классу, оно создаст его для вас, но попытается добавить его в DOM с помощью document.write из-за кросс-браузерной поддержки.Лучший и простой способ - предоставить скрытый ввод.

Вот простая реализация goog.History.

var history = new goog.History(false, '', document.getElementById('historyInput'));
goog.events.listen(history, goog.history.EventType.NAVIGATE, function() {
    console.log(history.getToken());
});
history.setEnabled(true);

Затем перейдите к некоторым хешированным URL-адресам на своей странице, и вы должны увидеть свойизменил хеш в вашей консоли как лог.

0 голосов
/ 16 февраля 2011

https://github.com/browserstate/History.js У меня нет опыта работы с ним, поскольку я использую барбекю Jquery, но, похоже, это должно решить ваши проблемы.

...