2012-01-24 6 views
2

Я использую API истории HTML5 (через History.js) для динамического переписывания URL-адресов. Я хотел бы, чтобы они были в следующем формате:История API - переписывание URL с несколькими сокращениями?

http://www.example.com/example/article/page 

, где «статья» и «страница» заданы API истории.

Однако это не работает должным образом, поскольку pushState или replaceState, предоставленные History.js, похоже, работают со стороны URL-адреса, который после последней косой черты.

Быстрый пример: если я нахожусь в http://www.example.com/example/ и делает pushState('Article-Title/1'), адрес будет http://www.example.com/example/Article-Title/1. Теперь я могу изменить номер страницы с pushState('2'), но у меня нет возможности изменить часть Article-Title, и это то, что мне нужно. window.location.href, который используется в example Ben Lupton, может изменить URL-адрес, но также вызывает «жесткую» перенаправление.

Я полагаю, что это ограничение существует для предотвращения XSS; однако это меня очень беспокоит. Есть ли разумный путь вокруг него?

ответ

3

Обнаружено, что URL-адрес, который я нажимаю, должен начинаться с косой черты. Это все, что нужно.

0

Вы также можете использовать относительные URL: ../../Another-Section/1