Widget:Dialog-js: Unterschied zwischen den Versionen

Aus ZUM-Unterrichten
(Christian änderte das Inhaltsmodell der Seite Widget:Dialog-js von „Wikitext“ nach „JavaScript“)
Markierung: Änderung des Inhaltsmodells
KKeine Bearbeitungszusammenfassung
Zeile 16: Zeile 16:
       elem.addEventListener('click', (ev) => {
       elem.addEventListener('click', (ev) => {
         dialog.showModal();
         dialog.showModal();
        ev.stopPropagation();
        return false;
       });
       });
     });
     });
Zeile 41: Zeile 43:


         ev.target.close();
         ev.target.close();
        ev.stopPropagation();
        return false;
       });
       });
     });
     });

Version vom 13. Februar 2024, 09:46 Uhr

<includeonly><script type="text/javascript">
(function(){
  const run = ()=>{
    document.querySelectorAll('[data-dialog-opener-id]').forEach((elem) => {
      if(elem.dataset.dialogOpenerAdded === 'true') { return; }


      const dialogId = elem.dataset.dialogOpenerId;
      const dialog = document.getElementById(dialogId);

      elem.dataset.dialogOpenerAdded = 'true';
      elem.addEventListener('click', (ev) => {
        dialog.showModal();
        ev.stopPropagation();
        return false;
      });
    });
  };
if (document.readyState === "loading") {
  document.addEventListener("DOMContentLoaded", run);
} else {
  run();
}
})();
</script><script type="text/javascript">
(function(){
  const run = ()=>{
    document.querySelectorAll('dialog.zum-dialog').forEach((elem) => {
      if(elem.dataset.dialogCloseonBackdropAdded === 'true') { return; }
      elem.dataset.dialogCloseonBackdropAdded = 'true';

      elem.addEventListener('mousedown', (ev) => {
        if(ev.target !== elem){return true;}
        const rect = ev.target.getBoundingClientRect();
        if(ev.x >= rect.left 
        && ev.x <= rect.right 
        && ev.y >= rect.top 
        && ev.y <= rect.bottom) { return true; }

        ev.target.close();
        ev.stopPropagation();
        return false;
      });
    });
  };
if (document.readyState === "loading") {

  document.addEventListener("DOMContentLoaded", run);
} else {
  run();
}
})();
</script>
<script type="text/javascript">
(function(){
  /*cleanup empty p tags, at beginning and end of dialogs created by Vorlage:DialogButton */
  const run = () => {
    document.querySelectorAll('dialog.zum-dialog').forEach((elem) => {
      if(elem.dataset.dialogCleanedup === 'true') { return; }
      elem.dataset.dialogCleanedup = 'true';
      [elem.firstElementChild, elem.lastElementChild]
        .filter((e) => e && e.tagName === 'P' && e.textContent === '')
        .forEach((e) => elem.removeChild(e))
    });
    document.querySelectorAll('[data-dialog-opener-id]').forEach((elem) => {
      if(elem.dataset.dialogCleanedup === 'true') { return; }
      elem.dataset.dialogCleanedup = 'true';
      [elem.firstElementChild, elem.lastElementChild]
        .filter((e) => e && e.tagName === 'P' && e.textContent === '')
        .forEach((e) => elem.removeChild(e))
    });
  };
if (document.readyState === "loading") {
  document.addEventListener("DOMContentLoaded", run);
} else {
  run();
}
})();
</script></includeonly>