Навигация: метод updateCurrentEntry()
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментальная функция: Это экспериментальная технология
Перед использованием в рабочей среде внимательно ознакомьтесь с таблицей совместимости браузеров.
Метод updateCurrentEntry() интерфейса Navigation обновляет state объекта currentEntry; используется в тех случаях, когда изменение состояния не зависит от навигации или перезагрузки.
Синтаксис
updateCurrentEntry(options)
Параметры
options-
Объект параметров, содержащий следующие свойства:
state-
Информация, определенная разработчиком, которая будет сохранена в ассоциированном элементе
NavigationHistoryEntryпосле завершения навигации и доступна черезgetState(). Это может быть любой тип данных. Например, вы можете сохранить количество посещений страницы для целей аналитики или сохранить данные состояния пользовательского интерфейса, чтобы отобразить представление точно так, как пользователь его оставил. Любые данные, хранящиеся вstateдолжны быть структурируемо клонируемыми.
Возвращаемое значение
Ничего (undefined).
Исключения
-
DataCloneErrorDOMException -
Выбрасывается, если параметр
stateсодержал значения, которые не могут быть структурируемо клонированы. -
InvalidStateErrorDOMException -
Выбрасывается, если объект
Navigation.currentEntrynull, т. е. нет текущей записи истории. Это может произойти, например, если текущая страницаabout:blank.
Примеры
Вы можете использовать что-то подобное для обновления состояния открытости/закрытости элемента <details>, чтобы состояние можно было восстановить при перезагрузке страницы или возвращении с другой страницы.
detailsElem.addEventListener("toggle", () => {
navigation.updateCurrentEntry({ state: { detailOpen: detailsElem.open } });
});
Спецификации
| Спецификация |
|---|
| HTML # dom-navigation-updatecurrententry-dev |
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
updateCurrentEntry |
102 | 102 | Нет | 88 | Нет | 102 | Нет | 70 | Нет | 19.0 | 102 |
См. также
- Современное маршрутизирование на стороне клиента: API навигации
- Разъяснение API навигации
- Демонстрация API навигации от Domenic Denicola здесь
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Navigation/updateCurrentEntry