pushState при переходе со страницы и обратно

Я пробую popstate и pushState, и мне интересно, как обрабатывать навигацию вне страницы.

Допустим, у меня есть индексная страница, которая генерирует «новую страницу» при нажатии на что-то, и она загружается с помощью ajax. С помощью popstate я меняю URL. На загруженной странице есть ссылки, которые выходят за пределы текущей «индексной» страницы. Когда кто-то нажимает в ответ, он получает сброшенный объект состояния.

Как предотвратить это, чтобы он действительно загружал URL-адрес, указанный во время pushState?

Заранее спасибо.


person John    schedule 08.12.2013    source источник


Ответы (2)


Похоже, вы делаете что-то, из-за чего браузер заменяет кешированную версию вашей индексной страницы чем-то другим. Убедитесь, что ваш сервер устанавливает

Vary: Accept

заголовок при возврате индексной страницы и последующих запросах. Дополнительные сведения см. в этой проблеме Chromium.

person janfoeh    schedule 08.12.2013

Ссылка также должна использовать якорь, чтобы у браузера была ссылка, на которую можно было бы опереться.

Бросьте один из них в начале каждой из страниц с уникальным атрибутом name.

Таким образом, ваши ссылки будут:

<a href="page.html#first">Load the first page</a>

и HTML-код страницы будет иметь это где-то вверху:

<a name="first"></a>

Забавно, что вы сделали этот пост, потому что у меня сейчас точно такая же проблема с этим сайтом, который я только начал делать вчера: http://asims.fleeceitout.com — пришлось везде поставить стрелки, чтобы люди не заблудились, ха-ха. Я закончу тем, что приму свой собственный совет здесь, но я слишком ленив сейчас. Кроме того, я пытаюсь понять, какую часть сайта я могу сделать, не используя ни одного <a></a>.

person Deryck    schedule 08.12.2013