JS об'єкт Location


Введення

Об'єкт Location у JavaScript відображає поточний URL документа, дозволяючи нам отримувати, переглядати та змінювати його частини. Цей об'єкт можна використовувати для переадресації на інший URL, перезавантаження сторінки та інших завдань, пов'язаних із роботою URL.

Location надає властивості для доступу до різних частин URL:

  • location.href – повний URL.
  • location.protocol – протокол (наприклад, "http:" або "https:").
  • location.host – ім'я хоста з портом.
  • location.hostname – ім'я хоста.
  • location.port – порт.
  • location.pathname – шлях після імені домену.
  • location.search – рядок запиту, починаючи з "?".
  • location.hash – частина URL після "#".

Приклад 1: Отримання поточного URL

console.log(location.href);  // може вивести "https://example.com/page.html?query=js#section"

У цьому прикладі ми просто виводимо поточний URL документа.

Приклад 2: Зміна частини URL

location.hash = "newSection";

Після виконання цього коду, URL документа зміниться на "https://example.com/page.html?query=js#newSection", а якщо на сторінці є елемент з ID "newSection", браузер прокрутить сторінку до цього елементу.

автор: Bond

Переадресація та перезавантаження сторінки

Методи об'єкта Location дозволяють нам керувати сторінкою:

  • location.assign(url): завантажує новий документ.
  • location.reload(): перезавантажує поточний документ.
  • location.replace(url): завантажує новий документ, замінюючи поточний в історії браузера.

Приклад 3: Переадресація на інший сайт

location.assign("https://www.openai.com");

Цей код перенаправляє користувача на сайт OpenAI.

Приклад 4: Перезавантаження сторінки

location.reload();

Виконуючи цей код, ви примусово перезавантажите поточну сторінку.

Приклад 5: Заміна поточного URL без додавання його в історію браузера

location.replace("https://www.example.com/newPage");

Цей код перенаправляє на "https://www.example.com/newPage", але старий URL не буде збережений в історії браузера, тому користувач не зможе повернутися назад за допомогою кнопки "Назад" у браузері.

автор: Bond

Звернення до параметрів запиту

location.search відображає рядок запиту URL, який починається з символу "?". Часто нам потрібно працювати з параметрами запиту.

Приклад 6: Отримання параметрів запиту

Припустимо, URL має такий вигляд: "https://example.com/page.html?user=John&age=30".

let params = new URLSearchParams(location.search);
let user = params.get("user");  // John
let age = params.get("age");    // 30

У цьому прикладі ми створюємо об'єкт URLSearchParams з location.search для легкого доступу до параметрів запиту.

Використання об'єкта Location є ключовим при роботі з веб-сторінками, адже він дозволяє нам керувати URL та взаємодіяти з його компонентами. З його допомогою можна легко реалізувати редирект, працювати з параметрами запиту та багато іншого.

автор: Bond

Порада

Перш ніж використовувати або змінювати будь-яку частину URL за допомогою об'єкта Location, переконайтеся, що новий URL є валідним і безпечним для ваших користувачів.

автор: Bond
Нотатка

Незважаючи на те, що об'єкт Location дозволяє легко реалізовувати переадресацію, важливо користуватися цією можливістю розумно. Занадто часте використання переадресації може хаважати користувачам та погіршувати їхній досвід користування сайтом.

автор: Bond
Нотатка

Метод location.replace() не лише перенаправляє на новий URL, але й видаляє поточний URL з історії браузера. Це може бути корисно в певних ситуаціях, але також може викликати незручності для користувачів, які сподіваються повернутися на попередню сторінку.

автор: Bond

Синтаксис

const loc = document.location;

методи

Метод Опис
assign Завантажує новий документ за вказаною URL-адресою.
reload Перезавантажує поточну веб-сторінку з сервера або кешу браузера.
replace Замінює поточну сторінку у стеку переходів новою, без можливості повернення назад.

властивості

Властивість Опис
hash Забезпечує доступ до фрагмента URL, який слідує після символу "#".
host Визначає ім'я хоста та порт поточної веб-сторінки.
hostname Повертає ім'я домену поточної веб-сторінки без порту.
href Повертає або встановлює повний URL поточної веб-сторінки.
origin Повертає походження URL поточної веб-сторінки, включаючи схему, хост та порт.
pathname Вказує шлях сторінки від кореня сайту до поточної веб-сторінки.
port Визначає порт, на якому працює поточна веб-сторінка.
protocol Визначає або повертає протокол поточної веб-сторінки.
search Повертає частину URL, що містить рядок запиту після знака '?'.

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 1 3 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
37 18 4 1
Підтримка: серверні переглядачі
Переглядач Deno
1.7

Приклади

+ запропонувати свій приклад у пісочниці

Якщо у вас є веб-сайт з кількома мовними версіями, ви можете дозволити користувачам змінювати мову, клікаючи на певну кнопку або випадаюче меню. Це можна зробити, модифікуючи частину шляху в URL за допомогою об'єкта Location.

function setLanguage(lang) {
    location.pathname = '/' + lang + '/homepage';
}
// Користувач вибирає "українська", викликається setLanguage('uk')
автор: Bond

На сторінці інтернет-магазину ви можете дозволити користувачам фільтрувати товари за різними критеріями. Після застосування фільтру можна змінювати рядок запиту, щоб відображати активні параметри фільтрації.

function filterProducts(color, size) {
    let params = new URLSearchParams(location.search);
    params.set('color', color);
    params.set('size', size);
    location.search = params.toString();
}
// Користувач вибирає колір "червоний" і розмір "M", викликається filterProducts('red', 'M')
автор: Bond

Після того як користувач успішно авторизується на вашому сайті, ви можете перенаправити його на сторінку, з якої він прийшов, або на особисту сторінку користувача.

function redirectToOriginOrDashboard() {
    if (document.referrer) {
        location.href = document.referrer;
    } else {
        location.href = '/dashboard';
    }
}
// Після успішного входу на сайт викликається redirectToOriginOrDashboard()
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід