Как изменить/получить данные в адресной строке после решетки(#)?

2010-05-25

Данные в адресной строке (в URL), которые идут после символа решетки (#) обычно называют хэш-данными (hash).
Они не используются в процессе обмена информацией с сервером, а предназначены именно для клиентских нужд. Прямое предназначение — реализация внутренних ссылок в пределах одной страницы.
Но hash-данные широко используются для реализации закладок, когда информация динамически формируются с помощью Javascript, и одна и та же веб-станица может находится в «разных режимах».

Установить свои хэш-данные можно таким образом:

location.hash = "my-data";

Получить хэш-данные можно так:

var myData = location.hash;
// myData: "#my-data"

Обратите внимание, что для того чтобы установить hash-данные, ненужно ставить символ решетки(#), но при получении этих данные мы получим строку, первый символ которой будет решеткой(#).



4 комментария на «Как изменить/получить данные в адресной строке после решетки(#)?»

  1. master_xss:

    такую систему используют «одноклассники»

  2. М.И.:

    а есть какое-нибудь javascript событие, которое палит изменение хэш-данных? ну чтобы обработчик повесить на переход на другую закладку…

  3. Александр:

    <script>
    myHashchangeHandler = function(){
    alert(window.location.hash);
    }</script>

    <a href=’#1′>1</a><br />
    <a href=’#2′>2</a>

  4. admin:

    Ну это Вы определили обработчик, но он не выполнится, так как он не назначен как обработчик события.

    Не все браузеры поддерживают такое событие, но «новые» уже поддерживают: «onhashchange».
    как минимум, нужно добавить такой атрибут в BODY: onhashchange = «myHashchangeHandler();»

    Подробно здесь: http://web.izjum.com/javascript-hashchange

Добавить комментарий