MediaWiki:Common.js: Unterschied zwischen den Versionen
Aus ZUM-Unterrichten
KKeine Bearbeitungszusammenfassung |
KKeine Bearbeitungszusammenfassung |
||
(15 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
/* Das folgende JavaScript wird für alle Benutzer geladen. */ | /* Das folgende JavaScript wird für alle Benutzer geladen. */ | ||
/* | |||
* Dialog Javascript for | |||
* Vorlage:DialogButton | |||
* | |||
* | |||
*/ | |||
(function(){ | (function(){ | ||
/* add dialog opener event handler */ | |||
const run = function() { | const run = function(){ | ||
document.querySelectorAll('[data- | document.querySelectorAll('[data-dialog-opener-id]').forEach(function(elem) { | ||
if(elem.dataset.dialogOpenerAdded === 'true') { return; } | |||
var dialogId = elem.dataset.dialogOpenerId; | |||
var dialog = document.getElementById(dialogId); | |||
elem.dataset.dialogOpenerAdded = 'true'; | |||
elem.addEventListener('click', function(ev) { | |||
dialog.showModal(); | |||
ev.stopPropagation(); | |||
elem.addEventListener('click', (ev) | return false; | ||
}); | }); | ||
}); | }); | ||
}; | }; | ||
if (document.readyState === "loading") { | |||
document.addEventListener("DOMContentLoaded", run); | |||
} else { | |||
run(); | |||
} | |||
})(); | |||
(function(){ | |||
/* close on click outside of dialog content */ | |||
const run = function(){ | |||
document.querySelectorAll('dialog.zum-dialog').forEach(function(elem){ | |||
if(elem.dataset.dialogCloseonBackdropAdded === 'true') { return; } | |||
elem.dataset.dialogCloseonBackdropAdded = 'true'; | |||
if (document.readyState === "loading") { | elem.addEventListener('mousedown', function(ev){ | ||
document.addEventListener("DOMContentLoaded", run); | if(ev.target !== elem){return true;} | ||
} else { | var 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(); | |||
} | |||
})(); | |||
(function(){ | |||
/*cleanup empty p tags, at beginning and end of dialogs created by Vorlage:DialogButton */ | |||
const run = function() { | |||
document.querySelectorAll('dialog.zum-dialog').forEach(function(elem) { | |||
if(elem.dataset.dialogCleanedup === 'true') { return; } | |||
elem.dataset.dialogCleanedup = 'true'; | |||
[elem.firstElementChild, elem.lastElementChild] | |||
.filter(function(e){return e && e.tagName === 'P' && e.textContent === '';}) | |||
.forEach(function(e) { elem.removeChild(e);}) | |||
}); | |||
document.querySelectorAll('[data-dialog-opener-id]').forEach(function(elem) { | |||
if(elem.dataset.dialogCleanedup === 'true') { return; } | |||
elem.dataset.dialogCleanedup = 'true'; | |||
[elem.firstElementChild, elem.lastElementChild] | |||
.filter(function(e){ return e && e.tagName === 'P' && e.textContent === '';}) | |||
.forEach(function(e){ elem.removeChild(e);}) | |||
}); | |||
}; | |||
if (document.readyState === "loading") { | |||
document.addEventListener("DOMContentLoaded", run); | |||
} else { | |||
run(); | |||
} | |||
})(); | |||
(function(){ | |||
/* overrule mediawiki default popup-close event handler */ | |||
const run = function() { | |||
document.querySelectorAll('dialog.zum-dialog') | |||
.forEach(function(elem) {elem.querySelectorAll('button.popup-close') | |||
.forEach(function(btn) { btn.addEventListener('click', function(ev) { | |||
ev.stopImmediatePropagation(); | |||
});});}); | |||
}; | |||
if (document.readyState === "loading") { | |||
document.addEventListener("DOMContentLoaded", run); | |||
} else { | |||
run(); | |||
} | |||
})(); | })(); |
Aktuelle Version vom 18. Februar 2024, 20:14 Uhr
/* Das folgende JavaScript wird für alle Benutzer geladen. */
/*
* Dialog Javascript for
* Vorlage:DialogButton
*
*
*/
(function(){
/* add dialog opener event handler */
const run = function(){
document.querySelectorAll('[data-dialog-opener-id]').forEach(function(elem) {
if(elem.dataset.dialogOpenerAdded === 'true') { return; }
var dialogId = elem.dataset.dialogOpenerId;
var dialog = document.getElementById(dialogId);
elem.dataset.dialogOpenerAdded = 'true';
elem.addEventListener('click', function(ev) {
dialog.showModal();
ev.stopPropagation();
return false;
});
});
};
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", run);
} else {
run();
}
})();
(function(){
/* close on click outside of dialog content */
const run = function(){
document.querySelectorAll('dialog.zum-dialog').forEach(function(elem){
if(elem.dataset.dialogCloseonBackdropAdded === 'true') { return; }
elem.dataset.dialogCloseonBackdropAdded = 'true';
elem.addEventListener('mousedown', function(ev){
if(ev.target !== elem){return true;}
var 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();
}
})();
(function(){
/*cleanup empty p tags, at beginning and end of dialogs created by Vorlage:DialogButton */
const run = function() {
document.querySelectorAll('dialog.zum-dialog').forEach(function(elem) {
if(elem.dataset.dialogCleanedup === 'true') { return; }
elem.dataset.dialogCleanedup = 'true';
[elem.firstElementChild, elem.lastElementChild]
.filter(function(e){return e && e.tagName === 'P' && e.textContent === '';})
.forEach(function(e) { elem.removeChild(e);})
});
document.querySelectorAll('[data-dialog-opener-id]').forEach(function(elem) {
if(elem.dataset.dialogCleanedup === 'true') { return; }
elem.dataset.dialogCleanedup = 'true';
[elem.firstElementChild, elem.lastElementChild]
.filter(function(e){ return e && e.tagName === 'P' && e.textContent === '';})
.forEach(function(e){ elem.removeChild(e);})
});
};
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", run);
} else {
run();
}
})();
(function(){
/* overrule mediawiki default popup-close event handler */
const run = function() {
document.querySelectorAll('dialog.zum-dialog')
.forEach(function(elem) {elem.querySelectorAll('button.popup-close')
.forEach(function(btn) { btn.addEventListener('click', function(ev) {
ev.stopImmediatePropagation();
});});});
};
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", run);
} else {
run();
}
})();