WindowEventHandlers.onpopstate

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

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

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

Синтаксис

window.onpopstate = funcRef;
  • 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

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
onpopstateChrome Полная поддержка 5Edge Полная поддержка 12Firefox Полная поддержка 4IE Полная поддержка 10Opera Полная поддержка 11.5Safari Полная поддержка 6WebView Android Полная поддержка 37Chrome Android Полная поддержка 18Firefox Android Полная поддержка 4Opera Android Полная поддержка 11.5Safari iOS Полная поддержка 5.1Samsung Internet Android Полная поддержка 1.0

Легенда

Полная поддержка  
Полная поддержка

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