MediaWiki:Minerva.js
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
/* All JavaScript here will be loaded for users of the MinervaNeue skin */
console.log('Minerva.js: OK');
mw.loader.using(['mediawiki.util']).then(function () {
var LINK_ID = 'ados-all-link';
var LINK_TEXT = 'Alle A Dream of Scotland Abfüllungen';
var LINK_URL = mw.util.getUrl('Alle A Dream of Scotland Abfüllungen');
// Alternativ harte URL:
// var LINK_URL = 'https://ados-wiki.bplaced.net/index.php?title=Alle_A_Dream_of_Scotland_Abf%C3%BCllungen';
function findMenuList() {
// Mehrere mögliche Strukturen je nach Minerva/MobileFrontend-Version:
return document.querySelector(
// neuer Minerva-Drawer
'.minerva-drawer .minerva-drawer__list,' +
// ältere Drawer-Varianten
'#mw-mf-page-left .menu ul,' +
'.drawer .menu ul,' +
'nav.drawer .menu ul'
);
}
function addLink() {
if (document.getElementById(LINK_ID)) return; // schon da
var list = findMenuList();
if (!list) return;
var li = document.createElement('li');
li.className = 'mw-list-item';
var a = document.createElement('a');
a.id = LINK_ID;
a.textContent = LINK_TEXT;
a.href = LINK_URL;
li.appendChild(a);
// nach ganz oben
list.insertBefore(li, list.firstChild);
console.log('Minerva.js: Link eingefügt ✔');
}
// 1) Beim Laden
if (document.readyState !== 'loading') addLink();
else document.addEventListener('DOMContentLoaded', addLink);
// 2) Wenn der Drawer später gerendert wird → MutationObserver
var mo = new MutationObserver(function () { addLink(); });
mo.observe(document.body, { childList: true, subtree: true });
// 3) Kleines Intervall als Fallback (läuft 5s)
var t = 0, i = setInterval(function () {
addLink();
if ((t += 500) >= 5000) clearInterval(i);
}, 500);
});