Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2022 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Das HTMLDialogElement-Interface bietet Methoden zur Manipulation von <dialog>-Elementen. Es erbt Eigenschaften und Methoden vom HTMLElement-Interface.
EventTarget Node Element HTMLElement HTMLDialogElementErbt auch Eigenschaften von seinem übergeordneten Interface, HTMLElement.
HTMLDialogElement.closedByEin String, der das closedby-HTML-Attribut setzt oder zurückgibt, welches die Typen von Benutzeraktionen angibt, die zum Schließen des Dialogs verwendet werden können.
HTMLDialogElement.openEin boolescher Wert, der das open-HTML-Attribut widerspiegelt und angibt, ob der Dialog für Interaktionen verfügbar ist.
HTMLDialogElement.returnValueEin String, der den Rückgabewert für den Dialog setzt oder zurückgibt.
Erbt auch Methoden von seinem übergeordneten Interface, HTMLElement.
HTMLDialogElement.close()Schließt den Dialog. Ein optionaler String kann als Argument übergeben werden, der den returnValue des Dialogs aktualisiert.
HTMLDialogElement.requestClose()Fordert das Schließen des Dialogs an. Ein optionaler String kann als Argument übergeben werden, der den returnValue des Dialogs aktualisiert.
HTMLDialogElement.show()Zeigt den Dialog nicht-modal an, d.h. Interaktionen mit Inhalten außerhalb des Dialogs sind weiterhin möglich.
HTMLDialogElement.showModal()Zeigt den Dialog als Modal an, das über allen anderen möglicherweise vorhandenen Dialogen schwebt. Alles außerhalb des Dialogs ist inert und Interaktionen außerhalb des Dialogs werden blockiert.
Erbt auch Events von seinem übergeordneten Interface, HTMLElement.
Hören Sie auf diese Events mit addEventListener() oder durch Zuweisen eines Event-Listeners zur oneventname-Eigenschaft dieses Interfaces.
cancelWird ausgelöst, wenn der Dialog angefordert wird zu schließen, sei es über die Escape-Taste oder über die requestClose()-Methode. Wenn das Event abgebrochen wird (über Event.preventDefault()), bleibt der Dialog geöffnet. Wird es nicht abgebrochen, schließt der Dialog und das close-Event wird ausgelöst.
closeWird ausgelöst, wenn der Dialog geschlossen wird.
Das folgende Beispiel zeigt eine Schaltfläche, die, wenn sie angeklickt wird, die showModal()-Funktion verwendet, um einen modalen Dialog mit einem Formular zu öffnen.
Während der Öffnung ist alles außer dem Inhalt des modalen Dialogs inert. Sie können auf den Close-Button klicken, um den Dialog zu schließen (über die close()-Funktion), oder das Formular über den Confirm-Button absenden.
Das Beispiel demonstriert:
Der Code holt zuerst Objekte für das <dialog>-Element, die <button>-Elemente und das <select>-Element. Dann wird ein Listener hinzugefügt, um die HTMLDialogElement.showModal()-Funktion aufzurufen, wenn der Open Dialog-Button angeklickt wird.
Als nächstes fügen wir einen Listener für das Close-Button-click-Event hinzu. Der Handler setzt den returnValue und ruft die close()-Funktion auf, um den Dialog zu schließen.
Als nächstes fügen wir einen Listener für das <form>-submit-Event hinzu. Das Formular wird eingereicht, wenn das erforderliche <select>-Element einen Wert hat und der Confirm-Button angeklickt wird. Wenn das <select>-Element keinen Wert hat, wird das Formular nicht eingereicht und der Dialog bleibt geöffnet.
Das Aufrufen von close() (oder das erfolgreiche Einreichen eines Formulars mit method="dialog"") löst das close-Event aus, was wir unten implementieren, indem wir den Rückgabewert des Dialogs protokollieren.
Das cancel-Event wird ausgelöst, wenn "plattform-spezifische Methoden" verwendet werden, um den Dialog zu schließen, wie die Esc-Taste. Es wird auch ausgelöst, wenn die requestClose()-Methode aufgerufen wird. Das Event ist "abbrechbar", was bedeutet, dass wir es verwenden könnten, um den Dialog daran zu hindern, sich zu schließen. Hier behandeln wir das Abbrechen einfach als "Schließen"-Aktion und setzen den returnValue auf "" zurück, um einen ggf. gesetzten Wert zu löschen.
Das toggle-Event (geerbt von HTMLElement) wird unmittelbar nach dem Öffnen oder Schließen eines Dialogs ausgelöst (aber vor dem close-Event).
Hier fügen wir einen Listener hinzu, um zu protokollieren, wann der Dialog geöffnet und geschlossen wird.
Hinweis: Die toggle und beforetoggle-Ereignisse werden möglicherweise nicht bei Dialogelementen in allen Browsern ausgelöst. Bei diesen Browserversionen können Sie stattdessen die open-Eigenschaft überprüfen, nachdem Sie versucht haben, den Dialog zu öffnen oder zu schließen.
Das beforetoggle-Event (geerbt von HTMLElement) ist ein abbrechbares Event, das unmittelbar vor dem Öffnen oder Schließen eines Dialogs ausgelöst wird. Falls erforderlich, kann dies verwendet werden, um zu verhindern, dass ein Dialog angezeigt wird, oder um Aktionen auf anderen Elementen durchzuführen, die vom Öffnen/Schließen-Zustand des Dialogs betroffen sind, etwa durch das Hinzufügen von Klassen, um Animationen auszulösen.
In diesem Fall protokollieren wir einfach den alten und den neuen Zustand.
Probieren Sie das unten stehende Beispiel aus. Beachten Sie, dass sowohl die Confirm- als auch die Close-Schaltflächen dazu führen, dass das close-Event ausgelöst wird und dass das Ergebnis die ausgewählte Dialogoption widerspiegeln sollte.
| HTML # htmldialogelement |
| HTML # event-beforetoggle |
| HTML # event-toggle |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.