Объект Location

Содержит информацию о текущем URL.

Создание

Location-объекты являются предопределёнными объектами JavaScript, доступ к которым Вы можете получить через свойство location объекта window.

Описание

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

В целом URL имеет форму: protocol//hostname:port/pathname#hash?search

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

Объект Location имеет ещё два свойства:

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

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

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

Пример: вывести свойства текущего location

function showLoc() {
   var x = window.location;
   var t = ['Property - Typeof - Value',
            'window.location - ' + (typeof x) + ' - ' + x ];
   for (var prop in x){
     t.push(prop + ' - ' + (typeof x[prop]) + ' - ' +  (x[prop] || 'n/a'));
   }
   return t;
 }
alert (showLoc().join('\n'));

Свойства объекта

hashУстанавливает или возвращает анкерную часть (#) в виде URL
hostУстанавливает или возвращает имя хоста и номер порта в URL
hostnameУстанавливает или возвращает имя хоста в URL
hrefУстанавливает или возвращает полный URL
originВозвращает протокол, имя хоста и номер порта в URL
pathnameУстанавливает или возвращает имя пути в URL
portУстанавливает или возвращает номер порта URL
protocolУстанавливает или возвращает протокол в URL
searchУстанавливает или возвращает часть строки запроса в URL

Методы

assign()Загружает новый документ
reload()Перезагружает текущий документ
replace()Заменяет текущий документ с новым

assign()

С помощью метода assign можно загрузить новый документ в данном окне браузера.

Синтаксис

location.assign(newURL)

Параметры

newURL
Является обязательным параметром. Указывает URL нового документа.

Комментарии

Отличие этого метода от replace, является то , что replace удаляет URL текущего документа из истории документа, а это означает , что это не представляется возможным использовать кнопку "back" браузера, чтобы вернуться обратно к исходному документу.

Если новый URL не удовлетворяет требованиям безопасности, возникает ошибка с типом SECURITY_ERROR. Это случается, если домен скрипта, вызвающего метод, не совпадает с доменом страницы, изначально содержащимся в Location.

Пример

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
//Загрузим главную страницу сайта после нажатия на кнопку
function newdoc()
{
location.assign('http://calendar.vpogiba.info')
}
</script>
</head>
<body>
<input type='button' onclick='newdoc()' value='Перейти на главную страницу нашего сайта'/>
</body>
</html>

hash

Свойство hash возвращает часть URL содержащую якори

Синтаксис

location.hash             // Возвращает hash
location.hash= anchorname // Устанавливает hash

Возвращаемое значение

Строка, представляющая анкерную часть URL, включая диез (#)

Описание

Свойство hash специфицирует часть URL. Это свойство применяется только к HTTP URL.

Если установленное Вами свойство hash не может быть найдено в текущем месте, Вы получите ошибку.

Установка свойства hash даёт переход к именованному якорю без перезагрузки документа. Это отличается от загрузки документа при установке других location-свойств

Пример

// переход к именованному якорю без перезагрузки документа
   window.location.hash = "#metka1";

//Предположим текущий URL = http://www.mysite.ru/index.php#number1 тогда
   document.write(location.hash)
//Вернет #number1

host

Свойство host возвращает часть URL содержащую название домена сайта (IP-адреса) и номера порта.

Синтаксис

location.host                 // Возвращает
location.host = hostname:port // Устанавливает

Возвращаемое значение

Строка, представляющая доменное имя (или IP-адрес) и номер порта URL

Описание

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

Пример

//Выведем host текущего домена 
  alert (location.host)
//Предположим текущий URL = http://www.mysite.ru:81/index.php тогда
   document.write(location.host)
//Вернет www.mysite.ru:81

hostname

Свойство hostname возвращает часть URL содержащую название домена сайта (IP-адреса)

Синтаксис

location.hostname                 // Возвращает
location.hostname = strHostname   // Устанавливает

Возвращаемое значение

Строка, представляющая доменное имя или IP-адрес URL

Пример

//Выведем host текущего домена 
  alert (location.hostname)
//Предположим текущий URL = http://www.mysite.ru:81/index.php тогда
   document.write(location.hostname)
//Вернет www.mysite.ru

href

Строка, специфицирующая полный URL.

Синтаксис

location.href              // Возвращает
location.href = strHref   // Устанавливает

Возвращаемое значение

Строка, представляющая весь URL страницы, включая протокол

Описание

Свойство href специфицирует полный URL. Другие свойства объекта location являются подстроками свойства href. Если Вам необходимо изменить URL, ассоциированный с окном, Вы должны изменить свойство href; это корректно обновит все другие свойства.

Отсутствие свойства при указании объекта location равносильно специфицированию location.href.

Пример

//Выведем текущий URL целиком
   alert (location.href);
   alert (location);

origin

Свойство origin возвращает протокол, имя хоста и номер порта в URL.

Синтаксис

location.origin

Возвращаемое значение

Строка, представляющая протокол (в том числе: //), доменное имя (или IP-адрес) и номер порта (включая знак двоеточие (:) в URL для URL, используя "файл:". Протокол, возвращаемое значение отличается между браузерами.

Комментарии

Если номер порта не указан в URL (или , если это по умолчанию порт схеме в - как 80, или 443), некоторые браузеры не будут отображать номер порта.

Это свойство только для чтения.

Пример

alert (location.origin)

Совместимость с браузерами

Да11,0ДаДа15,0

pathname

Свойство pathname возвращает часть URL содержащую путь к загруженному документу.

Синтаксис

location.pathname           // Возвращает
location.href = strPathname // Устанавливает

Возвращаемое значение

Строка, представляющая путь к файлу

Пример

alert (location.pathname)

port

Свойство port возвращает часть URL, содержащую коммуникационный порт, используемый сервером.

location.port           // Возвращает
location.port = strPort // Устанавливает

Возвращаемое значение

Строка, представляющая номер порта URL.

Комментарии

Если номер порта не указан возвращается пустая строка

protocol

Свойство protocol возвращает часть URL, содержащую название протокола.

Синтаксис

location.protocol               // Возвращает
location.protocol = strProtocol // Устанавливает

Возвращаемое значение

Строка, представляющая протокол текущего URL, включая двоеточие (:)

file:, ftp:, http:, https:, mailto:, и т.д.

Пример

//Выведем часть URL содержащую название протокола
alert(location.protocol);

reload()

Метод reload используется для перезагрузки текущего документа.

Действие этого метода аналогично действую кнопки "Обновить" браузера.

Синтаксис

location.reload( forceGet )

Параметры

forceGet
Необязательный. Определяет тип перегрузочных:
  • false - по умолчанию. Перезагружает текущую страницу из кэша.
  • true - перезагружает текущую страницу с сервера

Пример

location.reload(true)

replace()

Метод replace загружает специфицированный URL поверх текущего вхождения в списке history.

Синтаксис

location.replace(newURL)

Параметр

newURL
Строка, специфицирующая URL для загрузки.

Описание

replace удаляет URL текущего документа из истории документа, а это означает , что это не представляется возможным использовать "back" кнопку браузера, чтобы вернуться обратно к исходному документу.

Совет: Используйте метод assign, если вы хотите , чтобы загрузить новый документ, а также возможность вернуться обратно к исходному документу.

Если новый URL не удовлетворяет требованиям безопасности, возникает ошибка с типом SECURITY_ERROR. Это случается, если домен скрипта, вызвающего метод, не совпадает с доменом страницы, изначально содержащимся в Location.

search

Свойство search возвращает часть URL содержащую передаваемые запросы.

location.search             // Возвращает
location.search = strSearch // Устанавливает

Возвращаемое значение

Строка, представляющая строку запроса часть URL, включая знак вопроса (?)

Пример

//Предположим что текущий URL=http://www.mysite.ru/editor/wweditor.php?fname=html_intro 
  document.write(location.search)
//Тогда в результате выполнения кода выше вернется ?fname=html_intro