Поле адреса в браузере обычно располагается в верхней части окна и отображает URL загруженного документа. Если пользователь хочет вручную перейти к какой-либо странице (набрать ее URL), он делает это в поле адреса.
Рис. 4.2.
Свойство location объекта window само является объектом класса Location . Класс Location , в свою очередь, является подклассом класса URL , к которому относятся также объекты классов Area и Link . Объекты Location наследуют все свойства объектов URL , что позволяет получить доступ к любой части схемы URL . Подробнее о классе объектов URL мы расскажем в «Программируем гипертекстовые переходы» .
В целях совместимости с прежними версиями JavaScript, в языке поддерживается также свойство window.document. location , которое в настоящее время полностью дублирует свойство window. location со всеми его свойствами и методами. Рассмотрим теперь свойства и методы объекта window. location (событий, связанных с этим объектом, нет).
Свойства объекта location
Их проще продемонстрировать на примере. Предположим, что браузер отображает страницу, расположенную по адресу:
Тогда свойства объекта location примут следующие значения:
window.location.href = «http://www.site.ru:80/dir/page.cgi?product=phone&id=3#mark» window.location.protocol = «http:» window.location.hostname = «www.site.ru» window.location.port = 80 window.location.host = «www.site.ru:80» window.location.pathname = «dir/page.cgi» window.location.search = «?product=phone&id=3» window.location.hash = «#mark»
Как уже говорилось в предыдущих лекциях, к свойствам объектов можно обращаться как с помощью точечной нотации (как выше), так и с помощью скобочной нотации , например: window. location [» host «] .
Методы объекта location
Методы объекта location предназначены для управления загрузкой и перезагрузкой страницы. Это управление заключается в том, что можно либо перезагрузить текущий документ (метод reload () ), либо загрузить новый (метод replace () ).
window.location.reload(true);
Метод reload () полностью моделирует поведение браузера при нажатии на кнопку Reload в панели инструментов. Если вызывать метод без аргумента или указать его равным true , то браузер проверит время последней модификации документа и загрузит его либо из кеша (если документ не был модифицирован), либо с сервера. Такое поведение соответствует простому нажатию кнопки Reload браузера (клавиши F5 в Internet Explorer ). Если в качестве аргумента указать false , то браузер перезагрузит текущий документ с сервера, несмотря ни на что. Такое поведение соответствует одновременному нажатию клавиши Shift и кнопки браузера Reload (или Ctrl+F5 в Internet Explorer ).
Используя объект location , перейти на новую страницу можно двумя способами:
window.location.href=»http://www.newsite.ru/»; window.location.replace(«http://www.newsite.ru/»);
Разница между ними — в отображении этого действия в истории посещений страниц window. history . В первом случае в историю посещений добавится новый элемент, содержащий адрес » http://www.newsite.ru/ «, так что при желании можно будет нажать кнопку Back на панели браузера, чтобы вернуться к прежней странице. Во втором случае новый адрес » http://www.newsite.ru/ » заместит прежний в истории посещений, и вернуться к прежней странице нажатием кнопки Back уже будет невозможно.
История посещений (history)
История посещений страниц World Wide Web позволяет пользователю вернуться к странице, которую он просматривал ранее в данном окне браузера. История посещений в JavaScript трансформируется в объект window. history . Этот объект указывает на массив URL-страниц, которые пользователь посещал и которые он может получить, выбрав из меню браузера режим Go. Методы объекта history позволяют загружать страницы, используя URL из этого массива.
Чтобы не возникло проблем с безопасностью браузера, путешествовать по History можно, только используя индекс. При этом URL, как текстовая строка, программисту недоступен. Чаще всего этот объект используют в примерах или страницах, на которые могут быть ссылки из нескольких разных страниц, предполагая, что можно вернутся к странице, из которой пример будет загружен:
Данный код отображает кнопку «Назад», нажав на которую, мы вернемся на предыдущую страницу. Аналогичным образом действует метод history . forward () , перенося нас на следующую посещенную страницу.
Существует также метод go() , имеющий целочисленный аргумент и позволяющий перескакивать на несколько шагов вперед или назад по истории посещений. Например, history .go(-3) перенесет нас на 3 шага назад в истории просмотра. При этом методы back() и forward () равносильны методу go() с аргументами -1 и 1 , соответственно. Вызов history .go(0) приведет к перезагрузке текущей страницы.
Тип браузера (navigator)
Часто возникает задача настройки страницы на конкретную программу просмотра (браузер). При этом возможны два варианта: определение типа браузера на стороне сервера, либо на стороне клиента. Для последнего варианта в арсенале объектов JavaScript существует объект window. navigator . Важнейшие из свойств этого объекта перечислены ниже.
Рассмотрим простой пример определения типа программы просмотра.
Объект navigator содержит информацию о браузере пользователя (в частности — доступно ли использование cookie файлов и включена ли поддержка Java ).
Также объект navigator позволяет определить тип операционной системы.
Для удобства работы с объектом navigator выведем все его свойства на экран. Вспоминаем материал из предыдущего урока .


Информацию о браузере — свойство userAgent ;
Язык браузера — свойство language ;
Название операционной системы — свойство oscpu ;
Включены ли куки — свойство cookieEnable d;
Подключен ли пользователь к сети Интернет — свойство onLine .
Доступ к свойствам объекта