Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

NavigateEvent: canIntercept Eigenschaft

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Die canIntercept schreibgeschützte Eigenschaft des NavigateEvent-Interfaces gibt true zurück, wenn die Navigation abgefangen und ihre URL umgeschrieben werden kann, andernfalls false.

Es gibt mehrere Regeln, wann eine Navigation abgefangen werden kann. Zum Beispiel:

  • Sie können keine Cross-Origin-Navigationen abfangen.
  • Sie können http- oder https-URLs abfangen, wenn sich nur der path-, query- und fragment-Teil der neuen URL von der aktuellen URL unterscheidet.
  • Sie können file-URLs abfangen, wenn sich nur der query- und fragment-Teil der neuen URL unterscheidet.
  • Für andere URL-Typen können Sie die Navigation abfangen, wenn sich nur der fragment-Teil unterscheidet.

Weitere Erläuterungen, wann ein Dokument seine URL umgeschrieben haben kann, finden Sie in der Spezifikation: when a Document can have its URL rewritten, einschließlich einer Tabelle mit Beispielen.

Wert

Ein boolescher Wert—true, wenn die Navigation abgefangen werden kann, false wenn nicht.

Beispiele

js
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);
      }
    },
  });
});

Spezifikationen

Specification
HTML
# dom-navigateevent-canintercept-dev

Browser-Kompatibilität

Siehe auch