JavaScript. Подробное руководство, 6-е издание, стр. 375
<b> // Определите свое значение, если допустимо брать координаты из кэша.</b><b> // По умолчанию имеет значение 0, что обеспечивает получение самой</b><b> // свежей информации.</b><b> maximumAge: 300000, // Пригодна информация, полученная в течение последних 5 минут</b><b> // Предельное время ожидания выполнения запроса.</b><b> // По умолчанию имеет значение Infinity, что соответствует бесконечному</b><b> // времени ожидания выполнения запроса вызовом метода getCurrentPosition()</b><b> timeout: 15000 // Ждать не более 15 секунд</b><b> };</b><b> if (navigator.geolocation) // Запросить координаты, если возможно</b><b> navigator.geolocation.getCurrentPosition(success, error, options):</b><b> else</b><b> elt.innerHTML = "Возможность определения местонахождения " +</b><b> "не поддерживается этим броузером":</b><b> // Эта функция будет вызвана в случае неудачного выполнения запроса</b><b> function error(e) {</b><b> // Объект ошибки содержит числовой код и текстовое сообщение. Коды:</b><b> // 1: пользователь не дал разрешения на определение местонахождения</b><b> // 2: броузер не смог определить местонахождение</b><b> // 3: истекло предельное время ожидания</b><b> elt.innerHTML = "Ошибка определения местонахождения " + e.code + ": + е.message;</b><b> }</b><b> // Эта функция будет вызвана в случае успешного выполнения запроса</b><b> function success(pos) {</b><b> // Эти поля возвращаются всегда. Обратите внимание, что поле timestamp</b><b> // принадлежит внешнему объекту pos, а не вложенному coords,</b><b> var msg = "At " +</b><b> new Date(pos.timestamp).toLocaleString() +</b><b> " вы находились в " + pos.coords.accuracy + </b><b> " метрах от точки " +</b><b> pos.coords.latitude +</b><b> " северной широты " +</b><b> pos.coords.longitude + " восточной долготы.":</b><b> // Если устройство возвращает высоту над уровнем моря, добавить эту информацию,</b><b> if (pos.coords.altitude) {</b><b> msg += " Вы находитесь на высоте " +</b><b> pos.coords.altitude + " ± " + pos.coords.altitudeAccuracy +</b><b> " метров над уровнем моря.";</b><b> }</b><b> // Если устройство возвращает направление и скорость движения,</b><b> // добавить и эту информацию.</b><b> if (pos.coords.speed) {</b><b> msg += " Вы перемещаетесь со скоростью " +</b><b> pos.coords.speed + "м/сек в направлении " + pos.coords.heading + ".";</b><b> }</b><b> elt.innerHTML = msg; // Отобразить информацию о местонахождении</b><b> }</b><b>}</b>22.2. Управление историей посещений
Веб-броузеры запоминают, какие документы загружались в окно, и предоставляют кнопки Back и Forward, позволяющие перемещаться между этими документами. Эта модель хранения истории посещений в броузерах появилась еще в те дни, когда документы были статическими и все вычисления выполнялись на стороне сервера. В настоящее время веб-приложения часто загружают содержимое динамически и отображают новые состояния приложения без полной перезагрузки документа. Такие приложения должны предусматривать собственные механизмы управления историей посещений, если необходимо дать пользователю возможность использовать кнопки Back и Forward для перехода из одного состояния приложения в другое интуитивно понятным способом. Спецификация HTML5 определяет два механизма управления историей посещений.
Простейший способ работы с историей посещений связан с использованием свойства
<b>location.hash</b><b>location.hash</b><b>hash</b><b>location.hash</b>