Widget:Dialog-js: Unterschied zwischen den Versionen
Aus ZUM-Unterrichten
KKeine Bearbeitungszusammenfassung |
KKeine Bearbeitungszusammenfassung |
||
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
<includeonly><script type="text/javascript"> | <includeonly><script type="text/javascript"> | ||
(function(){ | (function(){ | ||
Zeile 16: | Zeile 12: | ||
elem.addEventListener('click', (ev) => { | elem.addEventListener('click', (ev) => { | ||
dialog.showModal(); | dialog.showModal(); | ||
ev.stopPropagation(); | |||
return false; | |||
}); | }); | ||
}); | }); | ||
Zeile 41: | Zeile 39: | ||
ev.target.close(); | ev.target.close(); | ||
ev.stopPropagation(); | |||
return false; | |||
}); | }); | ||
}); | }); | ||
}; | }; | ||
if (document.readyState === "loading") { | if (document.readyState === "loading") { | ||
document.addEventListener("DOMContentLoaded", run); | document.addEventListener("DOMContentLoaded", run); | ||
} else { | } else { | ||
Zeile 70: | Zeile 69: | ||
.forEach((e) => elem.removeChild(e)) | .forEach((e) => elem.removeChild(e)) | ||
}); | }); | ||
}; | |||
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) => elem.querySelectorAll('button.popup-close') | |||
.forEach((btn) => btn.addEventListener('click', (ev) => { | |||
ev.stopImmediatePropagation(); | |||
}))); | |||
}; | }; | ||
if (document.readyState === "loading") { | if (document.readyState === "loading") { |
Aktuelle Version vom 13. Februar 2024, 12:34 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>
<script type="text/javascript">
(function(){
/**/
const run = () => {
document.querySelectorAll('dialog.zum-dialog')
.forEach((elem) => elem.querySelectorAll('button.popup-close')
.forEach((btn) => btn.addEventListener('click', (ev) => {
ev.stopImmediatePropagation();
})));
};
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", run);
} else {
run();
}
})();
</script></includeonly>