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

HTMLDialogElement : propriété open

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨mars 2022⁩.

La propriété open de l'interface HTMLDialogElement est une valeur booléenne reflétant l'attribut HTML open, indiquant si la boîte de dialogue <dialog> est disponible pour l'interaction.

Valeur

Une valeur booléenne représentant l'état de l'attribut HTML open. Une valeur true signifie que la boîte de dialogue est affichée, tandis que false signifie qu'elle ne l'est pas.

Attention : Bien que la propriété open ne soit techniquement pas en lecture seule et puisse être modifiée directement, cela est fortement déconseillé par la spécification HTML (angl.), car cela peut perturber le fonctionnement normal des boîtes de dialogue de façon inattendue. Par exemple, l'événement close ne sera pas déclenché si open est défini à false par programmation, et les appels suivants à close() et requestClose() n'auront aucun effet. Il est donc préférable d'utiliser les méthodes show(), showModal(), close() et requestClose() pour modifier la valeur de l'attribut open.

Exemples

L'exemple suivant montre un simple bouton qui, lorsqu'il est cliqué, ouvre une boîte de dialogue <dialog> contenant un formulaire via la méthode showModal(). Vous pouvez ensuite cliquer sur le bouton Annuler pour fermer la boîte de dialogue (via la méthode HTMLDialogElement.close()), ou soumettre le formulaire avec le bouton de validation.

html
<!-- Boîte de dialogue simple -->
<dialog id="dialog">
  <form method="dialog">
    <button type="submit">Fermer</button>
  </form>
</dialog>

<p>
  <button id="openDialog">Ouvrir la boîte de dialogue</button>
</p>
<p id="dialogStatus"></p>
js
const openDialog = document.getElementById("openDialog");
const dialog = document.getElementById("dialog");
const text = document.getElementById("dialogStatus");

function openCheck(dialog) {
  if (dialog.open) {
    text.innerText = "Boîte de dialogue ouverte";
  } else {
    text.innerText = "Boîte de dialogue fermée";
  }
}

// Le bouton met à jour et ouvre la boîte de dialogue modale
openDialog.addEventListener("click", () => {
  dialog.showModal();
  openCheck(dialog);
});

dialog.addEventListener("close", () => {
  openCheck(dialog);
});

Résultat

Spécifications

Specification
HTML
# dom-dialog-open

Compatibilité des navigateurs

Voir aussi

  • Élément HTML implémentant cette interface :