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.
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 mitmethod="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
<!-- 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
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>
.