Spec-Zone.ru › Web APIs

NavigateEvent: свойство canIntercept

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

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

  • Узнать больше
  • Показать полную совместимость
  • Отправить отзыв

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

Чтение только свойство canIntercept интерфейса NavigateEvent возвращает true, если навигацию можно перехватить и изменить её URL, или false, в противном случае.

Существует несколько правил, определяющих, когда навигацию можно перехватить. Например:

  • Вы не можете перехватывать навигацию между разными доменными именами.
  • Вы можете перехватывать http или https URL, если только path, query, и fragment части нового URL отличаются от текущего URL.
  • Вы можете перехватывать file URL, если только query и fragment части нового URL отличаются.
  • Для других типов URL вы можете перехватить навигацию, если отличается только fragment часть.

Подробное объяснение, когда документ может изменить свой URL, включая таблицу примеров, см. в спецификации.

Значение

Булево значение—true , если навигацию можно перехватить, false , если нет.

Примеры

navigation.addEventListener("navigate", (event) => {
  // Some navigations, e.g. cross-origin navigations, we
  // cannot intercept. Let the browser handle those normally.
  if (!event.canIntercept) {
    return;
  }

  // Don't intercept fragment navigations or downloads.
  if (event.hashChange || event.downloadRequest !== null) {
    return;
  }

  event.intercept({
    handler() {
      if (event.formData) {
        processFormDataAndUpdateUI(event.formData, event.signal);
      } else {
        doSinglePageAppNav(event.destination, event.signal);
      }
    },
  });
});

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

Спецификация
HTML
# dom-navigateevent-canintercept-dev

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet WebView Android
canIntercept 105102 105102 Нет 9188 Нет 105102 Нет 7270 Нет 20.019.0 105102

См. также

  • Современное маршрутизирование на стороне клиента: 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/NavigateEvent/canIntercept

Spec-Zone.ru

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