Клиентский JavaScript. Справочник

         

Описание


Объект location представляет полный URL, ассоциированный с данным объектом window. Каждое свойство объекта location представляет разные части URL.

В целом URL имеет форму:

protocol//host:port/pathname#hash?search

Например:

http://home.netscape.com/assist/extensions.html#topic1?x=7&y=2

Эти части имеют следующее предназначение:

  • protocol представляет начало URL до первого двоеточия включительно.
  • host это имя хоста и домена или IP-адрес сетевого хоста.
  • port это порт соединения, используемый сервером.
  • pathname это часть URL-путь URL.
  • hash это фрагмент имени якоря в URL, включая символ хэша (#). Это свойство применяется только к HTTP URLs.
  • search это информация запроса, присоединённая к URL, включая знак вопроса (?). Это свойство применяется только к HTTP URLs. Строка поиска содержит пары переменная/значение; каждая пара отделена амперсандом (&).

Объект Location имеет свойства для всех частей URL. См. конкретные свойства. Объект Location имеет ещё два свойства:

  • href - полный URL.
  • hostname - конкатенация свойств host:port.

Если Вы присваиваете строку свойству location объекта, JavaScript создаёт объект location и присваивает эту строку его свойству href. Например, следующие два оператора эквивалентны и устанавливают URL для текущего окна - домашнюю страницу Netscape:

window.location.href="http://home.netscape.com/"
window.location="http://home.netscape.com/"

Объект location содержится в объекте window и находится в его области видимости/scope. Если Вы обращаетесь к объекту location без специфицирования window, объект location представляет текущее окно. Если Вы обращаетесь к объекту location и специфицируете имя окна, как, например, windowReference.location, объект location представляет местоположение в специфицированном окне.

В обработчиках событий Вы обязаны специфицировать window.location, а не просто location. Из-за ограничений области видимости static-объектов JavaScript, вызов location без специфицирования имени объекта эквивалентно document.location, что является синонимом для document.URL.

Location не является свойством объекта document; его эквивалентом является свойство document.URL. Свойство document.location, являющееся синонимом для document.URL, применять не рекомендуется.

Как документы загружаются при установленном location. Если Вы установили объект location или любое из его свойств, за исключением hash, то, как загружается новый документ, зависит от версии используемого браузера:

  • В JavaScript 1.0 установка location выполняет условную операцию ("If-modified-since") HTTP GET, которая не возвращает с сервера, если только документ не был модифицирован с момента загрузки последней версии.
  • В JavaScript 1.1 и позднее эффект от установки location зависит от установок пользователя для сравнения документа с оригиналом по сети. Опция интерфейса пользователя для установки этого свойства зависит от версии браузера. Пользователь определяет, проверять ли документ в кэше браузера каждый раз при доступе к нему, один раз в сессию или никогда. Документ перезагружается из кэша, если пользователь установил опции "никогда" или "один раз в сессию"; документ перезагружается с сервера только в том случае, если пользователь установил опцию "каждый раз при доступе".

Синтаксис обычных типов URL. Если Вы специфицируете URL, можно использовать стандартные форматы URL и операторы JavaScript. В таблице показан синтаксис для специфицирования наиболее распространённых типов URL.

Таблица 1.1  Синтаксис URL.
URL-типПротокол Пример
JavaScript-код javascript:javascript:history.go(-1)

Программа просмотра исходного кода в Navigator'е view-source: view-source:wysiwyg://0/file:/c|/temp/genhtml.html

Navigator info about:about:cache

World Wide Web http: http://home.netscape.com/

File file:/ file:///javascript/methods.html

FTP ftp: ftp://ftp.mine.com/home/mine

MailTo mailto:mailto:info@netscape.com

Usenet news: news://news.scruznet.com/comp.lang.javascript

Gopher gopher:gopher.myhost.com

Далее идут пояснения по некоторым протоколам:

  • Протокол javascript: вычисляет выражение, идущее после двоеточия (:), если оно имеется, и загружает страницу, содержащую строковое значение выражения, если только оно не undefined. Если выражение вычисляется в undefined (вызовом void-функции, например, javascript:void(0)), новая страница не загружается. Обратите внимание, что загрузка новой страницы поверх Вашей страницы со скриптом очищает значения переменных страницы, функции и т.п.
  • Протокол view-source: выводит код HTML, который был сгенерирован методами JavaScript-методами document.write и document.writeln. О печати и сохранении сгенерированного HTML см. document.write.
  • Протокол about: предоставляет информацию о Navigator'е. Например:
    • about: этот то же, что и выбор меню About Communicator из Help.
    • about:cache отображает статистику кэширования.
    • about:plugins выводит информацию о plug-ins, сконфигурированных Вами. Это то же самое, что выбор меню About Plug-ins из Help.



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