Использование кнопок браузера «назад» и «вперед» для веб-приложений - PullRequest
1 голос
/ 18 марта 2011

Как использовать кнопки браузера «назад» и «вперед» для навигации по моему веб-приложению javascript / jQuery? Я знаю, что могу сделать window.location.href = 'this_url#placeholder' и затем выполнить соответствующее действие. Но когда я это делаю, браузер прокручивает до элемента с этим идентификатором-заполнителем (или до самого верха, если его не было). Как заставить браузер никуда не прокручиваться? Я видел это на других сайтах, таких как Facebook, какой механизм для этого подходит?

Ответы [ 4 ]

3 голосов
/ 18 марта 2011

если вы используете location.hash вместо location.href, указанное вами поведение не должно происходить.

Стандарт HTML5 определяет новые функции истории, например history.pushState(), которые предлагают хорошую замену этому, но пока не все браузеры поддерживают его.

Если вы не хотите запускать свою собственную инфраструктуру, есть ряд плагинов javascript, которые предлагают эту функциональность, все упаковано для удобного использования в браузерах с немного отличающимися реализациями.Например, jquery history будет использовать более новые опции history в браузерах, которые его поддерживают, и использовать хеш-адреса в браузерах, которые этого не поддерживают.

1 голос
/ 18 марта 2011

Я думаю, что это может ответить на ваш вопрос:

добавить хэш с javascript к URL без прокрутки страницы?

0 голосов
/ 18 марта 2011

Вы можете добавить return false после этого или event.preventDefault.

$("a#some_id").click(function(){
  // do something cool
  return false; // don't scroll to #some_id
});

См. в этой теме для соответствующего обсуждения.

0 голосов
/ 18 марта 2011

Просто используйте заполнители, которые на самом деле не определены на странице. Если у вас есть

<a name="contents">

Тогда используйте

<a href="#contentsarea">Contents</a>

Для активации раздела содержимого. Браузер прокручивает только если хэштег имеет привязку на странице.

...