MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Содержание

Обработчик события popstate для объекта window.

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

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

Браузеры по разному обрабатывают событие на странице загрузки. Chrome (prior to v34) и Safari всегда генерируют событие popstate на странице загрузки, тогда как Firefox не делает этого.

Синтаксис

window.onpopstate = funcRef;
  • funcRef - функция обработчик.

Событие popstate

В качестве примера, страница 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) не имеет объекта state, ассоциированного с ней, событие popstate все равно произойдет, когда мы активируем эту запись после второго вызова history.back().

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

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

Метки документа и участники

 Внесли вклад в эту страницу: stary71, alexismaster
 Обновлялась последний раз: stary71,