From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../api/windoweventhandlers/onpopstate/index.html | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 files/ru/web/api/windoweventhandlers/onpopstate/index.html (limited to 'files/ru/web/api/windoweventhandlers/onpopstate/index.html') diff --git a/files/ru/web/api/windoweventhandlers/onpopstate/index.html b/files/ru/web/api/windoweventhandlers/onpopstate/index.html new file mode 100644 index 0000000000..62d82bd693 --- /dev/null +++ b/files/ru/web/api/windoweventhandlers/onpopstate/index.html @@ -0,0 +1,63 @@ +--- +title: WindowEventHandlers.onpopstate +slug: Web/API/WindowEventHandlers/onpopstate +translation_of: Web/API/WindowEventHandlers/onpopstate +--- +
{{APIRef}}
+ +

Свойство onpopstate миксина {{domxref("WindowEventHandlers")}} является {{domxref("EventHandler")}} для обработки событий popstate для "window".

+ +

Событие popstate отсылается объекту window каждый раз, когда активная запись истории меняется с одной на другую для одного и того же документа. Если запись истории, ставшая активной, была создана вызовом history.pushState() или изменена с помощью history.replaceState(), свойство state события popstate содержит копию объекта состояния этой записи истории.

+ +
+

Примечание:, просто вызов history.pushState() или history.replaceState() не вызовет событие popstate. Событие popstate срабатывает только тогда, когда происходят какие то действия в браузере, такие как нажатие кнопки "назад" (или вызов history.back() из JavaScript). Это событие срабатывает только когда пользователь переходит между двумя записями истории одного и того же документа.

+
+ +

Синтаксис

+ +
window.onpopstate = funcRef;
+
+ + + +

Примеры

+ +

В качестве примера, страница http://example.com/example.html, исполняя нижеследующий код, сгенерирует всплывающие сообщения, как показано в комментариях:

+ +
window.onpopstate = function(event) {
+  alert("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(); // alerts "location: http://example.com/example.html?page=1, state: {"page":1}"
+history.back(); // alerts "location: http://example.com/example.html, state: null
+history.go(2);  // alerts "location: http://example.com/example.html?page=3, state: {"page":3}
+
+ +

Обратите внимание, что даже несмотря на то, что первоначальная запись истории (для http://example.com/example.html) не имеет объекта события, связанного с ней, событие popstate все равно произойдет, когда мы активируем эту запись после второго вызова history.back().

+ +

Спецификация

+ + + +

Browser compatibility

+ + + +

{{Compat("api.WindowEventHandlers.onpopstate")}}

+ +

Смотрите также

+ + -- cgit v1.2.3-54-g00ecf