- Операторы
- Управляющие инструкции
- JS Объекты
- браузер BOM
- Window
- Navigator
- Screen
- History
- Location
- HTML DOM
- События
- HTML Объекты
- Промисы, async/await
- Сетевые запросы
- Бинарные данные и файлы
- Разное
Объект Location
Содержит информацию о текущем URL
.
Создание
Location-объекты являются предопределёнными объектами JavaScript, доступ к которым Вы можете получить через свойство location объекта window
.
Описание
Объект location представляет полный URL
, ассоциированный с данным объектом window
. Каждое свойство объекта location представляет разные части URL
.
В целом URL
имеет форму:
protocol//hostname:port/pathname#hash?search
Эти части имеют следующее предназначение:
protocol
представляет началоURL
до первого двоеточия включительно.hostname
это имя хоста и домена или IP-адрес сетевого хоста.port
это порт соединения, используемый сервером.pathname
это частьURL
-путьURL
.hash
это фрагмент имени якоря вURL
, включая символ хэша (#). Это свойство применяется только к HTTPURL
s.search
это информация запроса, присоединённая кURL
, включая знак вопроса (?). Это свойство применяется только к HTTPURL
s. Строка поиска содержит пары переменная/значение; каждая пара отделена амперсандом (&).
href
- полныйURL
.host
- конкатенация свойствhost:port
.
Если Вы присваиваете строку свойству 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