diff options
author | Denis LE <ledenis@users.noreply.github.com> | 2022-03-03 07:12:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-03 07:12:17 +0100 |
commit | da1500b5765037b2ec3db0190f3accac453c6d96 (patch) | |
tree | 78fa53a5bd72a7842826a7927955142d75931b33 /files/fr/web | |
parent | 282afe740c0077bdc5b68a81c62c58c41159a863 (diff) | |
download | translated-content-da1500b5765037b2ec3db0190f3accac453c6d96.tar.gz translated-content-da1500b5765037b2ec3db0190f3accac453c6d96.tar.bz2 translated-content-da1500b5765037b2ec3db0190f3accac453c6d96.zip |
update registerProtocolHandler fr (#4345)
* update registerProtocolHandler fr
* update fr vs en-US - rm xref macros
* Apply suggestions from code review
Co-authored-by: Carolyn Wu <87150472+cw118@users.noreply.github.com>
Co-authored-by: julieng <julien.gattelier@gmail.com>
Co-authored-by: SphinxKnight <SphinxKnight@users.noreply.github.com>
Co-authored-by: Carolyn Wu <87150472+cw118@users.noreply.github.com>
Diffstat (limited to 'files/fr/web')
-rw-r--r-- | files/fr/web/api/navigator/registerprotocolhandler/index.md | 131 |
1 files changed, 110 insertions, 21 deletions
diff --git a/files/fr/web/api/navigator/registerprotocolhandler/index.md b/files/fr/web/api/navigator/registerprotocolhandler/index.md index b44da6ad1f..4b241c19e6 100644 --- a/files/fr/web/api/navigator/registerprotocolhandler/index.md +++ b/files/fr/web/api/navigator/registerprotocolhandler/index.md @@ -1,40 +1,129 @@ --- -title: window.navigator.registerProtocolHandler +title: Navigator.registerProtocolHandler() slug: Web/API/Navigator/registerProtocolHandler -tags: - - Firefox 3 translation_of: Web/API/Navigator/registerProtocolHandler +browser-compat: api.Navigator.registerProtocolHandler --- -{{ ApiRef() }} +{{APIRef("HTML DOM")}}{{securecontext_header}} -### Résumé +La méthode **`registerProtocolHandler()`**, rattachée à l'interface **[`Navigator`](/fr/docs/Web/API/Navigator)**, permet aux sites de déclarer leur capacité à gérer certains schémas d'URL particuliers (autrement dit les protocoles). -Permet aux sites web de s'enregistrer en tant que gestionnaires possibles pour des protocoles particuliers. +Ainsi, cette API permettra aux sites de webmail d'ouvrir les URL `mailto:`, ou aux sites VoIP d'ouvrir des URL `tel:`. -{{ Note("Un site web ne peut enregistrer de gestionnaires de protocoles que pour lui-même. Pour des raisons de sécurité, il n\'est pas possible pour une extension ou un site d\'enregistrer des gestionnaires de protocoles ciblant d\'autres sites.") }} +## Syntaxe -### Syntaxe +```js +registerProtocolHandler(schema, url) +registerProtocolHandler(schema, url, titre) +``` - window.navigator.registerProtocolHandler(protocole,uri,titre); +> **Note :** La version avec l'argument déprécié `titre` est recommandée pour des raisons de compatibilité. Voir les informations sur les paramètres ci-après. -- `protocole` est le protocole que le site désire gérer, sous la forme d'une chaîne. -- `uri` est l'URI du gestionnaire sous la forme d'une chaîne. Il peut contenir « %s » pour indiquer où insérer l'URI échappée du document à gérer, comme montré dans l'exemple plus bas. -- `titre` est le titre du gestionnaire présenté à l'utilisateur, sous la forme d'une chaîne. +### Paramètres -### Exemple +- `schema` -Si votre application web est située à `http://www.example.com`, vous pouvez enregistrer un gestionnaire de protocole lui permettant de gérer « mailto » comme ceci : + - : Une chaîne de caractères contenant [les schémas autorisés](#schémas_autorisés) pour le protocole que le site souhaite gérer. On peut ainsi, par exemple, gérer les liens vers des messages SMS en passant le schéma `"sms"`. - navigator.registerProtocolHandler("mailto", - "https://www.example.com/?to=%s", - "Example Mail"); +- `url` -Ceci crée un gestionnaire permettant aux liens `mailto` de diriger l'utilisateur vers l'application web, en insérant l'adresse spécifiée dans le lien dans l'URL. + - : Une chaîne de caractères qui contient l'URL du gestionnaire. + **Cette URL doit inclure `%s`**, comme emplacement à remplacer avec l'URL [échappée](/fr/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent) à gérer. -### Spécification + > **Note :** L'URL du gestionnaire doit également utiliser le schéma `https`. Les anciens navigateurs prenaient aussi en charge `http`. -Spécifié dans le [brouillon de travail Web Applications 1.0](http://whatwg.org/specs/web-apps/current-work/#custom-handlers) du WHATWG. +- `titre` {{deprecated_inline}} -### Voir également + - : Un titre, lisible par un humain, pour le gestionnaire. + **Cette valeur sera affichée à l'utilisatrice ou à l'utilisateur**, par exemple pour lui demander « Autorisez-vous ce site à gérer les liens \[schema] ? » ou pour lister les gestionnaires enregistrés dans les paramètres du navigateur. + + > **Note :** Le titre a été retiré de la spécification en raison des risques d'usurpation. + > Ce paramètre `titre` devrait toujours être défini, car certains navigateurs **le considèrent obligatoire** (voir [le tableau de compatibilité qui suit](#compatibilité_des_navigateurs)). + > Les navigateurs qui implémentent la spécification à jour accepteront probablement ce paramètre supplémentaire en l'ignorant. + +### Exceptions + +- [`SecurityError`](/fr/docs/Web/API/DOMException#noms_derreur) + - : L'agent utilisateur a bloqué l'enregistrement. Cela peut se produire si : + + - Le schéma enregistré (le protocole) est invalide, par exemple parce qu'il est déjà géré par le navigateur (`https:`, `about:`, etc.) + - [L'origine](/fr/docs/Glossary/Origin) de l'URL du gestionnaire ne correspond pas à l'origine de la page qui utilise cette API. + - Cette fonction doit être appelée depuis un contexte sécurisé pour le navigateur. + - Le navigateur requiert que l'URL du gestionnaire soit communiquée via HTTPS. + +- [`SyntaxError`](/fr/docs/Web/API/DOMException#noms_derreur) + - : L'emplacement de substitution marqué par `%s` est absent de l'URL de gestion. + +## Schémas autorisés + +Pour des raisons de sécurité, `registerProtocolHandler()` restreint les schémas qui peuvent être enregistrés. + +Un **schéma personnalisé** (<i lang="en">custom scheme</i>) peut être enregistré tant que : + +- Le nom du schéma personnalisé commence par `web+` +- Le nom du schéma personnalisé inclut au moins une lettre après le préfixe `web+` +- Le nom du schéma personnalisé ne contient que des lettres ASCII en minuscules. + +On peut voir un [exemple](#exemple) après avec `web+burger`, qui obéit à ces contraintes. + +Le schéma peut aussi être l'une des valeurs suivantes : + +- `bitcoin` +- `ftp` +- `ftps` +- `geo` +- `im` +- `irc` +- `ircs` +- `magnet` +- `mailto` +- `matrix` +- `mms` +- `news` +- `nntp` +- `openpgp4fpr` +- `sftp` +- `sip` +- `sms` +- `smsto` +- `ssh` +- `tel` +- `urn` +- `webcal` +- `wtai` +- `xmpp` + +<!-- Cette liste devrait correspondre à : https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme --> + +## Exemple + +Si votre site est `burgers.example.com`, vous pouvez enregistrer un gestionnaire de protocole afin qu'il puisse gérer les liens `web+burger:`, de cette façon : + +```js +navigator.registerProtocolHandler("web+burger", + "https://burgers.example.com/?burger=%s", + "Gestionnaire de burger"); + // L'argument du titre est inclus + // pour des raisons de compatibilité +``` + +Cette instruction crée un gestionnaire qui permet que des liens `web+burger:` envoie les utilisatrices et utilisateurs vers votre site, en insérant l'URL du burger demandée dans l'emplacement indiqué par `%s`. + +Ce script devra être exécuté depuis la même origine que l'URL du gestionnaire (c'est-à-dire depuis une page située sous `https://burgers.example.com`). L'URL du gestionnaire devra être avec `http` ou `https`. + +La personne recevra une notification indiquant que le code a demandé à enregistrer le gestionnaire de protocole afin qu'elle puisse décide ou non d'autoriser cet enregistrement. Voir la capture d'écran ci-après pour un exemple avec `google.co.uk` : + + + +## Spécifications + +{{Specifications}} + +## Compatibilité des navigateurs + +{{Compat}} + +## Voir aussi - [Gestionnaires de protocoles web](/fr/docs/Web/API/Navigator/registerProtocolHandler/Web-based_protocol_handlers) +- [Améliorer le Web fédéré avec RegisterProtocolHandler (en anglais)](https://blog.mozilla.com/webdev/2010/07/26/registerprotocolhandler-enhancing-the-federated-web/) (Mozilla Webdev) |