Я использую 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; однако это меня очень беспокоит. Есть ли разумный путь вокруг него?