--- title: History API slug: Web/API/History_API translation_of: Web/API/History_API ---
Об'єкт DOM {{DOMxRef("Window")}} надає доступ до сеансу історії браузера через об'єкт {{DOMxRef("Window.history","history")}}. Він має корисні методи та властивості, які дозволяють відкривати попередні і наступні сторінки з історії користувача та впливати на вміст стеку історії.
Навігація по історії користувача здійснюється за допомогою методів {{DOMxRef("History.back","back()")}}, {{DOMxRef("History.forward","forward()")}} та {{DOMxRef("History.go","go()")}}.
Щоб відкрити попередню сторінку:
window.history.back()
Цей метод діє так само, ніби реальний користувач натиснув кнопку Назад на панелі інструментів свого браузера.
Подібним чином можна відкрити наступну сторінку (кнопка Вперед на панелі інструментів):
window.history.forward()
Щоб завантажити певну сторінку з історії сеансу використовується метод {{DOMxRef("History.go","go()")}}, передаючи як аргумент відносне положення до поточної сторінки (позиція поточної сторінки дорівнює 0
.)
Щоб повернутися на одну сторінку назад (еквівалент виклику {{DOMxRef("History.back","back()")}}):
window.history.go(-1)
Перехід на сторінку вперед, подібно до виклику {{DOMxRef("History.forward","forward()")}}:
window.history.go(1)
Подібним чином можна рухатись на 2 сторінки вперед, передаючи як аргумент 2
тощо.
Ще одне застосування методу go()
– оновлення поточної сторінки, використовуючи для цього аргумент 0
, або викликаючи метод без аргументу:
// Наступний код // оновить поточну сторінку window.history.go(0) window.history.go()
Кількість сторінок у стеку історії визначається значенням властивості length
:
let numberOfEntries = window.history.length
В наступному прикладі призначається обробка подій через властивість onpopstate
щоб проілюструвати деякі методи об’єкта історії для додавання, заміни та переміщення в історії браузера в поточній вкладці.
window.onpopstate = function(event) { console.log(`location: ${document.location}, state: ${JSON.stringify(event.state)}`) } history.pushState({page: 1}, "title 1", "?page=1") history.pushState({page: 2}, "title 2", "?page=2") history.replaceState({page: 3}, "title 3", "?page=3") history.back() // виведе в консоль "location: http://example.com/example.html?page=1, state: {"page":1}" history.back() // виведе в консоль "location: http://example.com/example.html, state: null" history.go(2) // виведе в консоль "location: http://example.com/example.html?page=3, state: {"page":3}"
Специфікація | Статус | Коментар |
---|---|---|
{{SpecName("HTML WHATWG", "browsers.html#history", "History")}} | {{Spec2("HTML WHATWG")}} | No change from {{SpecName("HTML5 W3C")}}. |
{{SpecName("HTML5 W3C", "browsers.html#history", "History")}} | {{Spec2("HTML5 W3C")}} | Initial definition. |
{{Compat("api.History")}}