Данные в адресной строке (в URL), которые идут после символа решетки (#) обычно называют хэш-данными (hash).
Они не используются в процессе обмена информацией с сервером, а предназначены именно для клиентских нужд. Прямое предназначение — реализация внутренних ссылок в пределах одной страницы.
Но hash-данные широко используются для реализации закладок, когда информация динамически формируются с помощью Javascript, и одна и та же веб-станица может находится в «разных режимах».
Установить свои хэш-данные можно таким образом:
location.hash = "my-data";
Получить хэш-данные можно так:
var myData = location.hash;
// myData: "#my-data"
Обратите внимание, что для того чтобы установить hash-данные, ненужно ставить символ решетки(#), но при получении этих данные мы получим строку, первый символ которой будет решеткой(#).
такую систему используют «одноклассники»
а есть какое-нибудь javascript событие, которое палит изменение хэш-данных? ну чтобы обработчик повесить на переход на другую закладку…
<script>
myHashchangeHandler = function(){
alert(window.location.hash);
}</script>
<a href=’#1′>1</a><br />
<a href=’#2′>2</a>
Ну это Вы определили обработчик, но он не выполнится, так как он не назначен как обработчик события.
Не все браузеры поддерживают такое событие, но «новые» уже поддерживают: «onhashchange».
как минимум, нужно добавить такой атрибут в BODY: onhashchange = «myHashchangeHandler();»
Подробно здесь: http://web.izjum.com/javascript-hashchange