JS властивість Event.newURL
Загальний опис
newURL
— це властивість об’єкта HashChangeEvent
, яка повертає повний URL-адресу сторінки після зміни хешу (частини після знаку #
). Подія HashChangeEvent
виникає кожного разу, коли змінюється частина URL після знака #
, і newURL
дозволяє отримати нову URL-адресу після такої зміни. Це може бути корисним для відстеження внутрішньої навігації на одній сторінці, особливо у випадках, коли використовується хеш-адресація для навігації або динамічного завантаження контенту.
Коли користувач змінює хеш вручну або при переході за посиланням із хешем, браузер генерує об’єкт HashChangeEvent
. Властивості oldURL
і newURL
надають доступ до повної URL-адреси до і після зміни хешу, що дозволяє розробнику реалізувати відповідні реакції на зміну хешу.
window.addEventListener('hashchange', (event) => {
console.log('Новий URL:', event.newURL);
console.log('Старий URL:', event.oldURL);
});
У цьому прикладі подія hashchange
прослуховується на об’єкті window
, і коли відбувається зміна хешу, консоль виводить нову та стару URL-адреси. Це особливо корисно для реалізації односторінкових додатків (SPA), де зміни хешу можуть відповідати різним розділам контенту або станам додатка.
Порада: | Подія |
Порада: |
|
Порада: | Щоб відстежити перехід на конкретний хеш, перевіряйте значення |
Синтаксис
event.newURL
Значення
Return
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
8 |
6 |
5.1 |
12.1 |
12 |
Переглядач | ||||
---|---|---|---|---|
4.4 |
18 |
6 |
5 |
Переглядач | ||
---|---|---|
- |
- |
Приклади
Цей приклад використовує newURL
, щоб отримати новий хеш і визначити, до якого розділу перейшов користувач. Це підходить для створення SPA, де кожен хеш відповідає певному розділу додатку.
window.addEventListener('hashchange', (event) => {
const newHash = new URL(event.newURL).hash;
if (newHash === '#section1') {
console.log('Перехід до секції 1');
// Логіка для відображення контенту секції 1
} else if (newHash === '#section2') {
console.log('Перехід до секції 2');
// Логіка для відображення контенту секції 2
}
});
Цей приклад демонструє, як можна отримати як старий, так і новий хеші для створення повідомлення про зміну. Це може бути корисним для інтерфейсів, де потрібно знати, з якого стану був виконаний перехід, що допоможе коректно оновити додаток або контент на сторінці.
window.addEventListener('hashchange', (event) => {
const previousSection = new URL(event.oldURL).hash;
const currentSection = new URL(event.newURL).hash;
console.log(`Повернулися з ${previousSection} до ${currentSection}`);
// Логіка для оновлення інтерфейсу, відображаючи різні секції чи статуси
});