Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

HTMLGeolocationElement : propriété permissionStatus

Expérimental: Il s'agit d'une technologie expérimentale.
Vérifiez attentivement le tableau de compatibilité des navigateurs avant de l'utiliser en production.

La propriété en lecture seule permissionStatus de l'interface HTMLGeolocationElement retourne une valeur énumérée représentant l'état d'autorisation actuel pour la fonctionnalité geolocation.

Si vous souhaitez accéder à l'état initial d'autorisation pour la fonctionnalité geolocation tel qu'il était lors du premier chargement de la page, utilisez la propriété initialPermissionStatus.

Valeur

Une valeur énumérée, qui peut être :

granted

L'utilisateur·ice a accordé l'autorisation au navigateur d'utiliser la fonctionnalité geolocation, soit par l'élément HTML <geolocation>, soit par un autre mécanisme. Lors de l'utilisation de l'élément <geolocation>, cela signifie que l'utilisateur·ice a appuyé sur le bouton affiché et sélectionné l'option « autoriser », à ce moment le navigateur commence à demander les données de localisation.

denied

L'utilisateur·ice a refusé l'autorisation au navigateur d'utiliser la fonctionnalité geolocation, soit par l'élément <geolocation>, soit par un autre mécanisme. Lors de l'utilisation de l'élément <geolocation>, cela signifie que l'utilisateur·ice a appuyé sur le bouton affiché et sélectionné l'option « ne pas autoriser », à ce moment le navigateur ne demandera pas les données de localisation tant que l'utilisateur·ice n'aura pas appuyé à nouveau sur le bouton affiché et sélectionné l'option « autoriser ».

prompt

L'utilisateur·ice n'a pas spécifiquement accordé ni refusé l'autorisation au navigateur d'utiliser la fonctionnalité geolocation, ce qui signifie que le navigateur ne demandera pas les données de localisation tant qu'il·elle n'aura pas accordé l'autorisation. Lors de l'utilisation de l'élément <geolocation>, cela signifie que l'utilisateur·ice n'a pas encore appuyé sur le bouton affiché. Lorsqu'il·elle le fera, il·elle aura la possibilité d'accorder ou de refuser l'autorisation au navigateur de demander les données de localisation.

L'état d'autorisation persiste entre les chargements de page. Si l'élément <geolocation> possède l'attribut autolocate défini sur true, et que l'autorisation a déjà été accordée, le navigateur commencera à demander les données de localisation dès que l'élément <geolocation> s'affiche, sans que l'utilisateur·ice ait besoin d'appuyer sur le bouton.

Exemples

Exemple simple

html
<geolocation></geolocation>
js
const geo = document.querySelector("geolocation");
console.log(geo.permissionStatus);
// "prompt" si c'est la première fois que l'utilisateur·ice accède à cette page

Utiliser l'état d'autorisation pour informer l'utilisateur·ice

Dans notre exemple de carte intégrée (angl.) (code source (angl.)), nous ajoutons un écouteur d'évènement promptaction à l'objet HTMLGeolocationElement représentant notre élément <geolocation>.

js
geo.addEventListener("promptaction", notifyUserGrantPermission);

Dans la fonction référencée notifyUserGrantPermission(), nous utilisons la propriété permissionStatus pour vérifier si l'état d'autorisation est denied ou prompt et, le cas échéant, nous demandons à l'utilisateur·ice d'appuyer à nouveau sur le bouton et d'autoriser la localisation. Il n'est pas nécessaire de demander cela si l'autorisation est accordée.

js
function notifyUserGrantPermission() {
  if (geo.permissionStatus === "denied" || geo.permissionStatus === "prompt") {
    statusElem.textContent =
      "Veuillez appuyer à nouveau sur le bouton « Utiliser la localisation » et autoriser la localisation pour ce site.";
  }
}

Voir la page principale HTMLGeolocationElement pour une explication complète de cet exemple.

Spécifications

Specification
Unknown specification
# dom-inpagepermissionmixin-permissionstatus

Compatibilité des navigateurs

Voir aussi