Spec-Zone.ru › Web APIs

NavigationActivation

Ограниченная доступность

Эта функция не является Базовой, поскольку она не работает в некоторых из наиболее широко используемых браузеров.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Экспериментальная версия: Это экспериментальная технология.
Перед использованием в производственной среде внимательно проверьте таблицу совместимости браузеров.

Интерфейс NavigationActivation API навигации представляет собой недавнюю междокументную навигацию. Он содержит тип навигации и записи истории исходящих и входящих документов.

Доступ к этому объекту осуществляется через свойства PageSwapEvent.activation и Navigation.activation. Обратите внимание, что в каждом случае NavigationActivation представляет собой другую навигацию:

  • Navigation.activation представляет информацию о навигации на текущую страницу.
  • PageSwapEvent.activation представляет информацию о навигации на следующую страницу.

Свойства экземпляра

entry Только для чтения Экспериментально

Содержит объект NavigationHistoryEntry, представляющий запись истории для входящего ("к") документа в навигации. Это эквивалентно свойству Navigation.currentEntry в момент активации входящего документа.

from Только для чтения Экспериментально

Содержит объект NavigationHistoryEntry, представляющий запись истории для исходящего ("от") документа в навигации.

navigationType Только для чтения Экспериментально

Содержит строку, указывающую тип навигации.

Примеры

window.addEventListener("pagereveal", async (e) => {
  // If the "from" history entry does not exist, return
  if (!navigation.activation.from) return;

  // Only run this if an active view transition exists
  if (e.viewTransition) {
    const fromUrl = new URL(navigation.activation.from.url);
    const currentUrl = new URL(navigation.activation.entry.url);

    // Went from profile page to homepage
    // ~> Set VT names on the relevant list item
    if (isProfilePage(fromUrl) && isHomePage(currentUrl)) {
      const profile = extractProfileNameFromUrl(fromUrl);

      // Set view-transition-name values on the elements to animate
      document.querySelector(`#${profile} span`).style.viewTransitionName =
        "name";
      document.querySelector(`#${profile} img`).style.viewTransitionName =
        "avatar";

      // Remove names after snapshots have been taken
      // so that we're ready for the next navigation
      await e.viewTransition.ready;
      document.querySelector(`#${profile} span`).style.viewTransitionName =
        "none";
      document.querySelector(`#${profile} img`).style.viewTransitionName =
        "none";
    }

    // Went to profile page
    // ~> Set VT names on the main title and image
    if (isProfilePage(currentUrl)) {
      // Set view-transition-name values on the elements to animate
      document.querySelector(`#detail main h1`).style.viewTransitionName =
        "name";
      document.querySelector(`#detail main img`).style.viewTransitionName =
        "avatar";

      // Remove names after snapshots have been taken
      // so that we're ready for the next navigation
      await e.viewTransition.ready;
      document.querySelector(`#detail main h1`).style.viewTransitionName =
        "none";
      document.querySelector(`#detail main img`).style.viewTransitionName =
        "none";
    }
  }
});

Примечание: См. Список разработчиков Chrome DevRel для демонстрации в реальном времени, из которой взят этот код.

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

Спецификация
HTML
# navigationactivation

Совместимость браузеров

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
NavigationActivation 123 123 Нет 109 Нет 123 Нет 82 Нет 27.0 123
entry 123 123 Нет 109 Нет 123 Нет 82 Нет 27.0 123
from 123 123 Нет 109 Нет 123 Нет 82 Нет 27.0 123
navigationType 123 123 Нет 109 Нет 123 Нет 82 Нет 27.0 123

См. также

  • API навигации
  • API переходов между представлениями

© 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/NavigationActivation

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API