HTMLElement: togglePopover() Methode

Baseline 2025
Newly available

Since January 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Die togglePopover()-Methode des HTMLElement-Interfaces schaltet ein Popover-Element (d.h. eines, das ein gültiges popover-Attribut hat) zwischen den Zuständen "versteckt" und "angezeigt" um.

Wenn togglePopover() auf ein Element mit dem popover-Attribut aufgerufen wird:

  1. Ein beforetoggle-Event wird ausgelöst.
  2. Das Popover wird zwischen versteckt und angezeigt umgeschaltet:
    1. Wenn es ursprünglich angezeigt wurde, wechselt es zu versteckt.
    2. Wenn es ursprünglich versteckt war, wechselt es zu angezeigt.
  3. Ein toggle-Event wird ausgelöst.

Syntax

js
togglePopover(force)

Parameter

force

Ein boolean, der togglePopover() dazu veranlasst, sich wie showPopover() oder hidePopover() zu verhalten, außer dass es keine Ausnahme auslöst, wenn das Popover bereits im Zielzustand ist.

  • Wenn auf true gesetzt, wird das Popover gezeigt, wenn es ursprünglich versteckt war. Wenn es bereits gezeigt wurde, passiert nichts.
  • Wenn auf false gesetzt, wird das Popover versteckt, wenn es ursprünglich gezeigt wurde. Wenn es bereits versteckt war, passiert nichts.

Rückgabewert

true, wenn das Popup nach dem Aufruf geöffnet ist, und false ansonsten.

Es kann in älteren Browserversionen eventuell None (undefined) zurückgegeben werden (siehe Browser-Kompatibilität).

Beispiele

Sehen Sie auf der Popover API Examples Landing Page die vollständige Sammlung von MDN-Popover-Beispielen.

Einfaches automatisches Pop-up

Dies ist eine leicht modifizierte Version des Toggle Help UI Popover Example. Das Beispiel schaltet ein Popover ein und aus, indem eine bestimmte Taste auf der Tastatur gedrückt wird (wenn das Beispiel-Fenster den Fokus hat).

Der HTML-Code für das Beispiel wird unten dargestellt. Dieses erste Element definiert Anweisungen, wie das Popup aufgerufen werden kann, das wir benötigen, da Popups standardmäßig versteckt sind.

html
<p id="instructions">
  Press "h" to toggle a help screen (select example window first).
</p>

Wir definieren dann ein <div>-Element, das das Popup ist. Der eigentliche Inhalt ist nicht wichtig, aber beachten Sie, dass wir das popover-Attribut benötigen, um das <div> in ein Popover zu verwandeln, sodass es standardmäßig versteckt ist (oder wir könnten dieses Element im JavaScript setzen).

html
<div id="mypopover" popover>
  <h2>Help!</h2>

  <p>You can use the following commands to control the app</p>

  <ul>
    <li>Press <ins>C</ins> to order cheese</li>
    <li>Press <ins>T</ins> to order tofu</li>
    <li>Press <ins>B</ins> to order bacon</li>
  </ul>
</div>

Der JavaScript-Code für das Beispiel wird unten dargestellt. Zuerst überprüfen wir, ob Popovers unterstützt werden, und wenn nicht, verstecken wir das Popover-div, damit es nicht inline angezeigt wird.

js
const instructions = document.getElementById("instructions");
const popover = document.getElementById("mypopover");

if (!HTMLElement.prototype.hasOwnProperty("popover")) {
  popover.innerText = "";
  instructions.innerText = "Popovers not supported";
}

Wenn Popovers unterstützt werden, fügen wir einen Listener hinzu, der das Drücken der h-Taste erkennt, und nutzen diesen, um das Popup zu öffnen. Wir protokollieren auch, ob das Popup nach dem Aufruf offen oder geschlossen war, jedoch nur, wenn true oder false zurückgegeben wurde.

js
if (HTMLElement.prototype.hasOwnProperty("popover")) {
  document.addEventListener("keydown", (event) => {
    if (event.key === "h") {
      const popupOpened = popover.togglePopover();

      // Check if popover is opened or closed on supporting browsers
      if (popupOpened !== undefined) {
        instructions.innerText +=
          popupOpened === true ? `\nOpened` : `\nClosed`;
      }
    }
  });
}

Sie können dies mit dem Live-Beispiel unten ausprobieren.

Spezifikationen

Specification
HTML
# dom-togglepopover

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
togglePopover
Returns true or false
source option
Experimental
Implicit anchor reference via source
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
In development. Supported in a pre-release version.
In development. Supported in a pre-release version.
No support
No support
Experimental. Expect behavior to change in the future.

Siehe auch