This page was translated from English by the community. Learn more and join the MDN Web Docs community.
History.replaceState()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
Метод History.replaceState() изменяет текущую запись в истории, заменяя её на значения stateObj, title и URL, передаваемые в параметрах метода. Данный метод особенно полезен, когда вы хотите обновить объект состояния или URL текущей записи в истории в ответ на какое-то действие пользователя.
Синтаксис
history.replaceState(stateObj, title, [url])
Параметры
stateObj-
Объект состояния – это JavaScript-объект, связанный с записью в истории, переданной в метод
replaceState(). Объект состояния может бытьnull. title-
Заголовок - все браузеры, кроме Safari, на данный момент игнорируют этот параметр, но могут начать использовать в будущем. Ввиду будущих изменений метода, безопасным решением является передача пустой строки. В качестве альтернативы вы можете передать короткий заголовок для состоянии, в которое переходите.
urlНеобязательный-
URL-адрес записи в истории. Новый URL должен вести на тот же домен, протокол и порт, иначе pushState() выдаст исключение.
Примеры
Предположим, на странице http://mozilla.org/foo.html выполняется следующий JavaScript-код:
let stateObj = { foo: "bar" }
history.pushState(stateObj, "page 2", "bar.html")
Объяснение этих двух строк можно найти в приведённом выше разделе пример метода pushState() .
Далее, предположим, на странице http://mozilla.org/bar.html выполняется JavaScript-код:
history.replaceState(stateObj, "page 3", "bar2.html")
Это приведёт к тому, что в URL-строке отобразится адрес http://mozilla.org/bar2.html, но браузер не станет сразу загружать bar2.html и даже не станет проверять наличие этой страницы bar2.html.
Теперь предположим, что пользователь переходит по адресу http://www.microsoft.com, а затем нажимает на кнопку "Назад". В этом случае в URL-строке отобразится http://mozilla.org/bar2.html. Если же пользователь снова нажмёт на кнопку "Назад", в URL-строке отобразится http://mozilla.org/foo.html и полностью обойдёт bar.html.
Спецификации
| Specification |
|---|
| HTML> # dom-history-replacestate-dev> |
Совместимость с браузерами
Enable JavaScript to view this browser compatibility table.