Кратко
Скопированоlocation — это объект, хранящийся в window, который позволяет получать информацию о текущем адресе страницы и менять его с помощью функций или обновления полей объекта.
Пример
СкопированоС помощью location мы можем получить текущий адрес:
// если выполнить этот скрипт на текущей странице доки в консолиconsole.log(window.location.href)// 'https://doka.guide/js/window-location/'
// если выполнить этот скрипт на текущей странице доки в консоли
console.log(window.location.href)
// 'https://doka.guide/js/window-location/'
Обновление текущей страницы можно произвести с помощью reload. Этот метод делает то же самое, что и кнопка «Обновить» в браузере:
window.location.reload()
window.location.reload()
С помощью replace можно сделать клиентский редирект, это приведёт к мгновенному переходу по адресу, указанному при вызове метода:
window.location.replace('https://doka.guide/')
window.location.replace('https://doka.guide/')
Как понять
СкопированоДля навигации по сайту мы используем адреса и параметры страницы. window содержит набор свойств и методов, чтобы удобно получать адрес и управлять им.
Как пишется
СкопированоСвойства
Скопировано
href – полное представление адреса. Можно сказать, что это зеркало того, что находится в адресной строке браузера в данный момент. Если записать значение в это свойство, то произойдёт обновление адреса и редирект на новый адрес.
Остальные свойства — это кусочки location. Они нужны, чтобы удобно получать каждый из них отдельно, а не вытаскивать их руками из полной строки адреса.
console.log(window.location.href)// отобразит текущий адресwindow.location.href = 'https://example.com'// сделает переход по указанному адресу
console.log(window.location.href)
// отобразит текущий адрес
window.location.href = 'https://example.com'
// сделает переход по указанному адресу
protocol содержит текущий протокол по которому открыта страница. Чаще всего там будет https и http.
host содержит значение хоста из ссылки. Хост включает в себя название текущего домена и порта.
hostname — частичка с доменом из свойства host, не включает в себя порт.
port — вторая составляющая значения host, содержит только номер порта. Если порт не указан в явном виде, то значением свойства будет пустая строка ''.
origin включает в себя путь, начиная с protocol и заканчивая port.
search, включая символ ?, содержит параметры в формате ключ, разделённые &. Если параметров нет, то значением будет пустая строка.
hash, включая символ # — якорная ссылка. Она находится в самом конце пути и отвечает за навигацию между размеченными на странице элементами с помощью установки атрибута id на тегах. Эта часть URL не передаётся на сервер. Если параметров нет, то значением будет пустая строка.
window.location.hash = 'в-работе'// проскролит страницу до элемента с `id="в-работе"` если такой присутствует на страницеconsole.log(window.location.hash)// напечатает якорь
window.location.hash = 'в-работе'
// проскролит страницу до элемента с `id="в-работе"` если такой присутствует на странице
console.log(window.location.hash)
// напечатает якорь
pathname – репрезентация текущего пути на сайте. Если текущий урл не содержит путь, то значением будет корневой путь ".
Например, значения window в зависимости от адреса:
https→: / / doka . guide / js / window - location / /js./ window - location / https→: / / doka . guide /.
Методы
Скопированоassign – метод вызывает переход на страницу, переданную в аргументах. После перехода на страницу пользователь может вернуться на страницу, с которой произошёл переход, с помощью браузерной кнопки «Назад».
replace аналогичен методу assign, но адрес страницы, с которой был вызван этот метод, не будет сохранён в истории браузера. При попытке вернуться назад пользователь будет отправлен на страницу предшествующую той, с которой произошёл переход.
reload перезагружает текущую страницу.
to приводит адрес страницы к строке. Возвращает то же самое значение, что и location.