API истории - переписывание URL с несколькими косыми чертами?

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


person avramov    schedule 24.01.2012    source источник


Ответы (2)


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

person avramov    schedule 24.01.2012

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

person Simon_Weaver    schedule 28.10.2015