Я использую API истории HTML5 (через History.js) для динамической перезаписи URL-адресов. Я хотел бы, чтобы они были в следующем формате:
http://www.example.com/example/article/page
где и «статья», и «страница» задаются History API.
Однако это не работает так, как ожидалось, поскольку pushState
или replaceState
, предоставляемые History.js, похоже, работают только с той частью URL-адреса, которая находится после последней косой черты.
Быстрый пример: если я нахожусь в http://www.example.com/example/
и делаю pushState('Article-Title/1')
, URL-адрес становится http://www.example.com/example/Article-Title/1
. Теперь я могу изменить номер страницы с помощью pushState('2')
, но у меня нет возможности изменить часть Article-Title
, что мне и нужно. window.location.href
, который используется в примере Бена Луптона, может изменить URL-адрес, но также вызывает "жесткую" перенаправить.
Я предполагаю, что это ограничение введено для предотвращения XSS; однако меня это сильно беспокоит. Есть ли разумный способ обойти это?