Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

elt.innerHTML = "Возможность определения местонахождения " +

"не поддерживается этим броузером":

// Эта функция будет вызвана в случае неудачного выполнения запроса

function error(e) {

// Объект ошибки содержит числовой код и текстовое сообщение. Коды:

// 1: пользователь не дал разрешения на определение местонахождения

// 2: броузер не смог определить местонахождение

// 3: истекло предельное время ожидания

elt.innerHTML = "Ошибка определения местонахождения " + e.code + ": + е.message;

}

// Эта функция будет вызвана в случае успешного выполнения запроса

function success(pos) {

// Эти поля возвращаются всегда. Обратите внимание, что поле timestamp

// принадлежит внешнему объекту pos, а не вложенному coords,

var msg = "At " +

new Date(pos.timestamp).toLocaleString +

" вы находились в " + pos.coords.accuracy +
" метрах от точки " +

pos.coords.latitude +
" северной широты " +

pos.coords.longitude + " восточной долготы.":

// Если устройство возвращает высоту над уровнем моря, добавить эту информацию,

if (pos.coords.altitude) {

msg += " Вы находитесь на высоте " +

pos.coords.altitude + " ± " + pos.coords.altitudeAccuracy +

" метров над уровнем моря.";

}

// Если устройство возвращает направление и скорость движения,

// добавить и эту информацию.

if (pos.coords.speed) {

msg += " Вы перемещаетесь со скоростью " +

pos.coords.speed + "м/сек в направлении " + pos.coords.heading + ".";

}

elt.innerHTML = msg; // Отобразить информацию о местонахождении

}

}

22.2. Управление историей посещений

Веб-броузеры запоминают, какие документы загружались в окно, и предоставляют кнопки Back и Forward, позволяющие перемещаться между этими документами. Эта модель хранения истории посещений в броузерах появилась еще в те дни, когда документы были статическими и все вычисления выполнялись на стороне сервера. В настоящее время веб-приложения часто загружают содержимое динамически и отображают новые состояния приложения без полной перезагрузки документа. Такие приложения должны предусматривать собственные механизмы управления историей посещений, если необходимо дать пользователю возможность использовать кнопки Back и Forward для перехода из одного состояния приложения в другое интуитивно понятным способом. Спецификация HTML5 определяет два механизма управления историей посещений.

Простейший способ работы с историей посещений связан с использованием свойства

location.hash
и события «hashchange». На момент написания этих строк данный способ был также наиболее широко реализованным: его поддержка в броузерах появилась еще до того, как он был стандартизован спецификацией HTML5. В большинстве броузеров (кроме старых версий IE) изменение свойства
location.hash
приводит к изменению URL, отображаемого в строке ввода адреса, и добавлению записи в историю посещений. Свойство
hash
определяет идентификатор фрагмента в URL и традиционно использовалось для перемещения к разделу документа с указанным идентификатором. Но свойство
location.hash
не обязательно должно определять идентификатор элемента: в него можно записать произвольную строку. Если состояние приложения можно представить в виде строки, эту строку можно будет использовать как идентификатор фрагмента.

Предусмотрев изменение значения свойства

location.hash
, вы даете пользователю возможность использовать кнопки Back и Forward для перемещения между состояниями приложения. Чтобы такие перемещения были возможны, приложение должно иметь способ определять момент изменения состояния, прочитать строку, хранящуюся в виде идентификатора фрагмента, и обновить себя в соответствии с требуемым состоянием. Согласно спецификации HTML5, при изменении идентификатора фрагмента броузер должен возбуждать событие «hashchange» в объекте
Window
. В броузерах, поддерживающих событие «hashchange», можно присвоить свойству
window.onhashchange
функцию обработчика, которая будет вызываться при каждом изменении идентификатора фрагмента документа, вызванном перемещением по истории посещений. При вызове эта функция-обработчик должна проанализировать значение
location.hash
и отобразить содержимое страницы, соответствующее выбранному состоянию.

  • Читать дальше
  • 1
  • ...
  • 434
  • 435
  • 436
  • 437
  • 438
  • 439
  • 440
  • 441
  • 442
  • 443
  • 444
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: