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:
Объект 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.
Протокол 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.
Свойство hash специфицирует часть URL. Это свойство применяется
только к HTTP URL.
Вы можете установить свойство hash в любое
время, хотя надёжнее установить свойство href для изменения местоположения.
Если установленное Вами свойство hash не может быть найдено в текущем месте, Вы
получите ошибку.
Установка свойства hash даёт переход к именованному якорю без
перезагрузки документа. Это отличается от загрузки документа при установке
других location-свойств (см. "Как загружаются
документы при установке location").
Здесь оператор window.open создаёт окно
newWindow и загружает в него специфицированный URL. Операторы document.write
выводят свойства newWindow.location в окне
msgWindow.
Свойство host специфицирует часть URL. Свойство host
является подстрокой свойства hostname. Свойство hostname
получается путём конкатенации свойств host и port,
разделённых двоеточием.
Если значение свойства port равно null, свойство host
будет тем же самым, что и свойство hostname.
Вы можете установить свойство host в любое
время, хотя надёжнее установить свойство href для изменения
местоположения. Если host не может быть найдено в текущем месте, Вы получите
ошибку.
Здесь оператор window.open создаёт окно newWindow
и загружает в него специфицированный URL. Операторы document.write
отображают свойства newWindow.location в окне msgWindow.
Свойство hostname специфицирует часть URL. Свойство hostname
получается путём конкатенации свойств host и port,
разделённых двоеточием. Если свойство port имеет значение 80 (это
значение по умолчанию), свойство host будет таким же, что и
свойство hostname.
Вы можете установить свойство hostname в любое время, хотя надёжнее
установить свойство href для изменения местоположения. Если
специфицированное Вами свойство hostname не может быть найдено в текущем месте,
Вы получите ошибку.
Здесь оператор window.open создаёт окно
newWindow и загружает в него специфицированный URL. Операторы document.write
отображают свойства newWindow.location в окне msgWindow.
Свойство href специфицирует полный URL. Другие свойства объекта location
являются подстроками свойства href. Если Вам необходимо изменить URL,
ассоциированный с окном, Вы должны изменить свойство href; это
корректно обновит все другие свойства.
Вы можете установить свойство href в любое время.
Отсутствие свойства при указании объекта location равносильно
специфицированию
location.href. Например, следующие два оператора эквивалентны и
устанавливают URL
текущего окна - домашнюю страницу Netscape:
В этом примере оператор window.open создаёт окно
newWindow и загружает в него специфицированный URL. Оператор document.write
отображает все свойства newWindow.location в окне msgWindow.
Свойство pathname специфицирует часть URL. Свойство pathname
указывает детали получения доступа к специфицированному ресурсу.
Вы можете установить свойство pathname в
любое время, хотя надёжнее установить свойство href для изменения
местоположения. Если специфицированное Вами свойство pathname не может быть найдено в текущем месте, Вы
получите ошибку.
В этом примере оператор window.open создаёт окно
newWindow и загружает в него специфицированный URL. Операторы document.write
выводят свойства newWindow.location в окне msgWindow.
Свойство port специфицирует часть URL. Свойство port
является подстрокой свойства hostname. Свойство hostname
получается путём конкатенации свойств host и port,
разделённых двоеточием.
Вы можете установить свойство port в любое
время, хотя надёжнее установить свойство href для изменения
местоположения. Если специфицированное Вами свойство port не может быть найдено в текущем месте, Вы получите
ошибку. Если свойство port не специфицировано, он имеет значение по
умолчанию 80.
В этом примере оператор window.open создаёт окно
newWindow и загружает в него специфицированный URL. Операторы document.write
выводят свойства newWindow.location в окне msgWindow.
Свойство protocol специфицирует часть URL. Свойство protocol
указывает метод доступа URL. Например, значение "http:"
специфицирует протокол HyperText Transfer
Protocol, а значение "javascript:" специфицирует код JavaScript.
Вы можете установить свойство protocol в
любое время, хотя надёжнее установить свойство href для изменения
местоположения. Если специфицированное Вами свойство protocol не может быть найдено в текущем месте, Вы
получите ошибку.
В этом примере оператор window.open создаёт окно
newWindow и загружает в него специфицированный URL. Операторы document.write
отображают свойства newWindow.location в окне msgWindow.
Если вы задаёте значение true,
форсирует безусловный HTTP GET документа с сервера. Он не должен использоваться,
пока Вы не убедитесь, что кэши диска и памяти не исчерпаны и не нарушены или
что сервер не имеет новую версию документа (например, если он генерируется с
помощью CGI при каждом запросе).
Описание
Этот метод использует ту же политику, что и кнопка Reload браузера. Интерфейс
пользователя для установки значения по умолчанию этой политики варьируется для
различных версий браузеров.
По умолчанию метод reload не форсирует
транзакцию сервера. Однако, если пользователь установил проверку версии
документа при каждом доступе к нему,
этот метод выполняет "условный GET-запрос" с использованием HTTP header/шапки If-modified-since
для получения с сервера запрашиваемого документа только в том случае, если время last-modified
новее, чем время, хранимое в кэше клиента. Другими словами, reload
перезагружает документ из кэша только в том случае, если не специфицирована
проверка каждый раз и документ не изменился на сервере с момента его
последней загрузки и сохранения в кэше.
Пример
С этом примере выводятся рисунок и три радио-кнопки.
Пользователь может щёлкнуть радио-кнопки для выбора рисунка для отображения.
Щелчок по другой кнопке даёт пользователю возможность перезагрузить документ.
<SCRIPT> function displayImage(theImage) { document.images[0].src="./clientref13/./theImage" } </SCRIPT>
Метод replace загружает специфицированный URL поверх текущего
вхождения в списке history. После вызова метода replace
пользователь не может перейти к предыдущему URL, щёлкнув кнопку Back браузера.
Если Ваша программа работает с JavaScript 1.0,
Вы можете поместить следующие строки в тэг SCRIPT перед Вашей
программой. Это эмулирует replace, который был введён в JavaScript 1.1:
if (location.replace == null) location.replace = location.assign
Метод replace не создаёт новое вхождение в
списке history. Для создания нового вхождения в списке history при загрузке URL
используйте метод
History.go.
Пример
В этом примере
пользователь может выбрать из нескольких каталогов. Выводятся два набора
радио-кнопок, щёлкая которые пользователь выбирает время года и категорию,
например, каталог Spring/Summer Clothing или каталог Fall/Winter Home
& Garden. Если пользователь щёлкает кнопку Go, функция displayCatalog
выполняет метод replace, замещая текущий URL на URL,
соответствующий выбранному каталогу. После вызова displayCatalog
пользователь не может перейти к предыдущему URL (списку каталогов) путём
использования кнопки Back браузера.
<SCRIPT> function displayCatalog() { var seaName=""
var catName=""
for (var i=0; i < document.catalogForm.season.length; i++) { if (document.catalogForm.season[i].checked) { seaName=document.catalogForm.season[i].value i=document.catalogForm.season.length } }
for (var i in document.catalogForm.category) { if (document.catalogForm.category[i].checked) { catName=document.catalogForm.category[i].value i=document.catalogForm.category.length } } fileName=seaName + catName + ".html" location.replace(fileName) } </SCRIPT>
<FORM NAME="catalogForm"> <B>Which catalog do you want to see?</B>
Свойство search специфицирует часть URL. Это свойство применяется только
к HTTP URLs.
Свойство search содержит пары
переменная/значение;
каждая пара отделяется амперсандом (&). Например, две
пары в строке search могут выглядеть так:
?x=7&y=5
Вы можете установить свойство search в любое время, хотя надёжнее
установить свойство
href для изменения местоположения. Если установленное Вами свойство search не может быть
найдено в текущем месте, Вы получите ошибку.
В этом примере оператор window.open создаёт окно
newWindow и загружает в него специфицированный URL. Операторы document.write
выводят свойства newWindow.location в окне msgWindow.