--- title: History.pushState() slug: Web/API/History/pushState tags: - API - HTML DOM - Web - метод translation_of: Web/API/History/pushState ---
{{APIRef("DOM")}}
В HTML документе метод history.pushState()
добавляет новое состояние в историю браузера
history.pushState(state, title[, url])
state object
pushState()
. Всякий раз, когда пользователь переходит к новому состоянию, происходит событие popstate
, а свойство state
этого события содержит копию объекта состояния с записями истории.pushState()
выдаст исключение. Если вам нужно хранилище большего размера, следует рассмотреть использование sessionStorage
и/или localStorage
.url
{{optional_inline}}pushState()
, но может попытаться сделать это позже, например, после того, как пользователь перезапустит браузер. Новый URL-адрес не обязан быть абсолютным; если он относительный, то определяется относительно текущего URL. Новый URL должен вести на тот же домен, протокол и порт, иначе pushState()
выдаст исключение. Данный параметр не является обязательным; если он не указан, будет использоваться URL текущего документа.Вызов pushState()
в некоторой степени похож на установку window.location = "#foo"
, поскольку они оба также создают и активируют ещё одну запись в истории, связанную с текущим документом.
Но у pushState()
есть несколько преимуществ:
window.location
оставляет вас на том же {{ domxref("document") }} лишь в том случае, если вы меняете только хэшwindow.location = "#foo";
создаёт новую запись в истории, только если текущий хеш не #foo
title
впоследствии используется браузерами, эти данные могут быть использованы (независимо от, скажем, хеша).Обратите внимание, что pushState()
никогда не вызывает событие hashchange
, даже если новый URL отличается от старого только хешем.
Создание новой записи истории браузера, задавая state, title, и url.
const state = { 'page_id': 1, 'user_id': 5 } const title = '' const url = 'hello-world.html' history.pushState(state, title, url)
Спецификация | Статус | Комментарий |
---|---|---|
{{SpecName('HTML WHATWG', "browsers.html#dom-history-pushstate", "History")}} | {{Spec2('HTML WHATWG')}} | Не изменён в {{SpecName("HTML5 W3C")}}. |
{{SpecName('HTML5 W3C', "browsers.html#dom-history-pushstate", "History")}} | {{Spec2('HTML5 W3C')}} | Начальное определение |
Особенность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Базовая поддержка | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Особенность | Android | Android Webview | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Базовая поддержка | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |