HTMLDialogElement

Baseline Widely available

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

Das HTMLDialogElement-Interface bietet Methoden zur Manipulation von <dialog>-Elementen. Es erbt Eigenschaften und Methoden vom HTMLElement-Interface.

EventTarget Node Element HTMLElement HTMLDialogElement

Instanzeigenschaften

Erbt auch Eigenschaften von seinem übergeordneten Interface, HTMLElement.

HTMLDialogElement.open

Ein boolescher Wert, der das HTML-Attribut open widerspiegelt und angibt, ob das Dialogfenster zur Interaktion verfügbar ist.

HTMLDialogElement.returnValue

Ein String, der den Rückgabewert für das Dialogfenster festlegt oder zurückgibt.

Instanzmethoden

Erbt auch Methoden von seinem übergeordneten Interface, HTMLElement.

HTMLDialogElement.close()

Schließt das Dialogfenster. Es kann optional ein String als Argument übergeben werden, das den returnValue des Dialogs aktualisiert.

HTMLDialogElement.show()

Zeigt das Dialogfenster modellfrei an, d.h. ermöglicht weiterhin die Interaktion mit Inhalten außerhalb des Dialogs.

HTMLDialogElement.showModal()

Zeigt das Dialogfenster als Modal an, das über alle anderen möglicherweise vorhandenen Dialoge gelegt wird. Alles außerhalb des Dialogs ist inert, und Interaktionen außerhalb des Dialogs sind blockiert.

Ereignisse

Erbt auch Ereignisse von seinem übergeordneten Interface, HTMLElement.

Hören Sie auf diese Ereignisse mit addEventListener() oder indem Sie einen Ereignis-Listener der oneventname-Eigenschaft dieses Interfaces zuweisen.

cancel

Wird ausgelöst, wenn der Benutzer den aktuellen offenen Dialog mit der Escape-Taste abbricht.

close

Wird ausgelöst, wenn das Dialogfenster geschlossen wird, sei es mit der Escape-Taste, der HTMLDialogElement.close()-Methode oder durch das Absenden eines Formulars innerhalb des Dialogs mit method="dialog".

Beispiele

Öffnen eines modalen Dialogs

Das folgende Beispiel zeigt einen Button, der, wenn er angeklickt wird, ein modales <dialog> öffnet, das ein Formular über die Funktion HTMLDialogElement.showModal() enthält. Während es geöffnet ist, ist alles außer den Inhalten des modalen Dialogs inaktiv. Sie können dann auf die Abbrechen-Schaltfläche klicken, um den Dialog zu schließen (über die Funktion HTMLDialogElement.close()), oder das Formular über die Absenden-Schaltfläche abschicken. Die Auswahl der Abbrechen-Schaltfläche schließt den Dialog und erzeugt ein close-Ereignis, nicht ein cancel-Ereignis.

HTML

html
<!-- pop-up dialog box, containing a form -->
<dialog id="favDialog">
  <form method="dialog">
    <p>
      <label for="favAnimal">Favorite animal:</label>
      <select id="favAnimal" name="favAnimal">
        <option></option>
        <option>Brine shrimp</option>
        <option>Red panda</option>
        <option>Spider monkey</option>
      </select>
    </p>
    <div>
      <button id="cancel" type="reset">Cancel</button>
      <button type="submit">Confirm</button>
    </div>
  </form>
</dialog>

<div>
  <button id="updateDetails">Update details</button>
</div>

JavaScript

js
const updateButton = document.getElementById("updateDetails");
const cancelButton = document.getElementById("cancel");
const dialog = document.getElementById("favDialog");
dialog.returnValue = "favAnimal";

function openCheck(dialog) {
  if (dialog.open) {
    console.log("Dialog open");
  } else {
    console.log("Dialog closed");
  }
}

// Update button opens a modal dialog
updateButton.addEventListener("click", () => {
  dialog.showModal();
  openCheck(dialog);
});

// Form cancel button closes the dialog box
cancelButton.addEventListener("click", () => {
  dialog.close("animalNotChosen");
  openCheck(dialog);
});

Ergebnis

Spezifikationen

Specification
HTML Standard
# htmldialogelement

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch

  • Das HTML-Element, das dieses Interface implementiert: <dialog>.