Web-инжиниринг

Location


Поле location

Поле location отображает URL загруженного документа. Если пользователь хочет вручную перейти к какой-либо странице(набрать ее URL), то он делает это в поле location. Поле располагается в верхней части окна браузера ниже панели инструментов, но выше панели личных предпочтений.

Вообще говоря, location - это объект. Из-за изменений в версиях JavaScript класс location входит как подкласс и в класс window и в класс document. Мы будем рассматривать location только как window.location. Кроме того, location - это еще и подкласс класса URL, к которому относятся также объекты классов Area и Link. Location наследует все свойства URL, что позволяет легко получить доступ к любой части схемы URL.

Рассмотрим характеристики и способы использования объекта location:

  • Свойства
  • Методы
  • Событий, характеризующих location, нет
  • Как видим список характеристик объекта location неполный.

    Свойства

    Предположим, что браузер отображает страницу, расположенную по адресу:

    http://kuku.ru:80/r/dir/page?search#mark

    Тогда свойства объекта location примут следующие значения (при выборе свойства из списка его значение отображается в текстовом поле под списком):



    Список свойств:

    window.location.href

    window.location.protocol

    window.location.hostname

    window.location.host

    window.location.port

    window.location.pathname

    window.location.search

    window.location.hash

    Значение свойства:

    Данный пример - это небольшое лукавство. Для демонстрации свойств location был использован другой URL-объект AREA. Он не отображается браузером, т.к. в документе нет sensitive map, но при этом он реально порожден, и его свойства можно использовать. Но это не означает, что вас бессовестно обманули. Меню перехода к описанию свойств и методов использует объект location для перехода по гипертекстовым ссылкам:


    <ul>

    <li><a href="javascript:window.location.hash='prop';void(0);">Свойства</a>

    <li><a href="javascript:window.location.hash='method';void(0);">Методы</a>

    <li>Событий, характеризующих location, нет

    </ul>

    Подмена была осуществлена только с одной целью: избежать перехода на другую страницу, что всегда происходит при изменении значений свойств объекта location. Такое поведение собственно и отличает location от area и link.


    начало страницы


    Методы

    Методы location предназначены для управления загрузкой и перезагрузкой страницы. Это управление заключается в том, что можно либо перегрузить документ(reload), либо загрузить(replace) новый документ. При этом в трассу просмотра страниц(history) при выполнении этих методов информация не заносится:

    window.location.reload(true);

    window.location.replace('#top');

    Метод reload() полностью моделирует поведение браузера при нажатии на кнопку Reload в панели инструментов. Если вызывать метод без аргумента или указать его равным true, то браузер проверит время последней модификации документа и загрузит его либо из кеша(если не был модифицирован), либо с сервера. Такое поведение соответствует простому нажатию на кнопку Reload. Если в качестве аргумента указать false, то браузер перезагрузит текущий документ с сервера, не взирая ни на что. Такое поведение соответствует одновременному нажатию на Reload и кнопку клавиатуры shift(Reload+shift).

    Метод replace позволяет заместить текущую страницу на другую страницу таким образом, что это замещение не будет отражено в трассе просмотра html-страниц(history) и при нажатии на кнопку Back из панели инструментов пользователь всегда будет попадать на первую загруженную нормальным способом (по гипертекстовой ссылке) страницу. Напомним, что при изменении свойств location также происходит перезагрузка страниц, но в этом случае записи об их посещении в history попадают.


    начало страницы






    u="u686.25.spylog.com";d=document;nv=navigator;na=nv.appName;p=1; bv=Math.round(parseFloat(nv.appVersion)*100); n=(na.substring(0,2)=="Mi")?0:1;rn=Math.random();z="p="+p+"&rn="+rn;y=""; y+=""; y+="
    "; y+=""; d.write(y);if(!n) { d.write("








    Содержание раздела