JS об'єкт HashChange
Загальний опис
Подія HashChange використовується для відстеження змін в урлі після символу #, що дозволяє змінювати вміст сторінки або виконувати інші дії без перезавантаження. Зміни після # в URL часто використовуються в односторінкових додатках для навігації між різними станами або секціями сторінки.
Подія hashchange спрацьовує, коли змінюється частина URL, що йде після знака #. Цю подію можна використати для реагування на зміни в адресі без необхідності перезавантажувати сторінку. Наприклад, вона корисна для навігації по різних розділах сайту або в односторінкових додатках.
Щоб обробити подію, достатньо додати обробник через метод addEventListener. Ось приклад:
window.addEventListener('hashchange', function(event) {
console.log('Новий хеш:', location.hash);
});
В обробнику події можна отримати новий хеш за допомогою location.hash, що дає змогу виконувати необхідні дії, коли частина після # змінюється.
window.addEventListener('hashchange', function(event) {
const newHash = location.hash; // отримаємо новий хеш
document.getElementById('content').innerText = 'Ви зараз на сторінці ' + newHash;
});
Цей код дозволяє змінювати контент на сторінці, залежно від значення хеша в URL.
Однією з особливостей є те, що подія не спрацьовує, якщо хеш в URL не змінюється. Також важливо пам'ятати, що зміни хеша не викликають перезавантаження сторінки, що робить подію корисною для розробки динамічних веб-додатків.
| Порада: | При використанні |
| Порада: | Не забувайте, що подія |
| Порада: | Для реалізації більш складних механізмів навігації у SPA (односторінкових додатках) можна використовувати хеші для визначення поточного стану. Це дозволяє користувачам копіювати та ділитися URL, що відображає конкретний стан додатка. |
Синтаксис
window.addEventListener('hashchange', function(event) {
// Ваш код
});
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
8 |
3.6 |
5 |
10.6 |
12 |
| Переглядач | ||||
|---|---|---|---|---|
4.4 |
18 |
4 |
5 |
| Переглядач | ||
|---|---|---|
- |
- |
Приклади
Цей приклад демонструє використання події hashchange для реалізації динамічної навігації між різними секціями сторінки. Користувач може натискати на кнопки для переходу між секціями. Кожен перехід змінює хеш у URL, а подія hashchange реагує на ці зміни та оновлює контент на сторінці без перезавантаження. Це простий і ефективний спосіб створити інтерактивні веб-додатки з односторінковою навігацією.
Цей код дозволяє перемикатися між різними секціями сторінки в залежності від хеша. Це зручно для створення розділеної навігації в односторінкових додатках.
window.addEventListener('hashchange', function() {
const section = location.hash.substring(1);
document.querySelectorAll('.section').forEach(el => {
el.style.display = (el.id === section) ? 'block' : 'none';
});
});
Цей код дозволяє користувачеві вибирати між різними секціями додатка, і URL буде оновлюватися відповідно до вибору.
document.getElementById('button1').addEventListener('click', function() {
location.hash = '#section1';
});
document.getElementById('button2').addEventListener('click', function() {
location.hash = '#section2';
});
window.addEventListener('hashchange', function() {
const hash = location.hash.substring(1);
document.getElementById('content').innerText = 'Ви вибрали: ' + hash;
});
Методи
Властивості
newURL- Містить новий URL після зміни хеша на сторінці.
oldURL- Містить старий URL до зміни хеша на сторінці.
