NavigationPrecommitController : méthode addHandler()
Disponibilité limitée
Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.
Vous voulez une meilleure prise en charge pour cette fonctionnalité ? Dites-nous pourquoi.
La méthode addHandler() de l'interface NavigationPrecommitController permet d'ajouter dynamiquement une fonction de rappel de gestionnaire dans le code de pré-validation, qui est ensuite exécutée après que la navigation a été validée.
Cela est utile lorsque le flux de navigation dépend d'informations qui ne sont pas connues avant que le code de pré-validation ne commence à s'exécuter.
Si le gestionnaire de pré-validation et le gestionnaire (post-validation) sont indépendants, le gestionnaire peut être défini dans l'argument options.handler passé à NavigateEvent.intercept().
Syntaxe
addHandler(handler);
Paramètres
handler-
Une fonction de rappel qui définit le comportement de gestion de la navigation post-validation ; elle retourne une promesse.
La fonction de rappel du gestionnaire est invoquée comme si elle est passée à la méthode
NavigateEvent.intercept(), et s'exécute après que la propriétécurrentEntrya été mise à jour.
Valeur de retour
Aucune (undefined).
Exceptions
InvalidStateErrorDOMException-
Levée si :
- Un objet
NavigateEventd'origine n'a pas été intercepté ou a été annulé. - Un objet
Documentn'est pas entièrement actif.
- Un objet
SecurityErrorDOMException-
Levée si l'attribut
isTrustedde l'évènement estfalse.
Exemples
Pour plus d'exemples, voir NavigationPrecommitController.
Utilisation simple
Cet exemple montre une implémentation de gestionPreValidation qui récupère des données pour une page et utilise addHandler() pour ajouter différents gestionnaires en fonction du type de page (les implémentations de recupererConfig, configurerLecteurVideo() et configurerAffichageArticle() ne sont pas fournies).
navigation.addEventListener("navigate", (event) => {
event.intercept({
async gestionPreValidation(controleur) {
const pageData = await recupererConfig();
if (pageData.type === "video") {
controleur.addHandler(() => configurerLecteurVideo());
} else {
controleur.addHandler(() => configurerAffichageArticle());
}
},
});
});
Spécifications
| Spécification |
|---|
| HTML> # dom-navigationprecommitcontroller-addhandler> |