MediaWiki:Gadget-CustomPopups.js
Erscheinungsbild
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
mw.hook('wikipage.content').add(function() {
// Popup-Container erzeugen (einmalig)
if (!$('#custom-popup').length) {
$('body').append('<div id="custom-popup"></div>');
}
// Hover-Effekt für interne Links
$('a').hover(function(e) {
const title = $(this).attr('title');
if (!title) return;
$.getJSON(mw.util.wikiScript('api'), {
action: 'parse',
page: title,
prop: 'text',
format: 'json'
}).done(function(data) {
if (!data.parse || !data.parse.text) return;
let html = $('<div>').html(data.parse.text['*']);
// 1. Versuch: ersten sinnvollen Absatz nehmen
let firstParagraph = null;
html.find('p').each(function() {
const text = $(this).text().trim();
if (text.length >= 3) {
firstParagraph = $(this).html();
return false;
}
});
// 2. Fallback: gesamten sichtbaren Text, wenn kein Absatz gefunden
if (!firstParagraph) {
const fallbackText = html.text().trim();
if (fallbackText.length >= 3) {
firstParagraph = fallbackText;
} else {
firstParagraph = "(Kein Vorschautext verfügbar)";
}
}
$('#custom-popup')
.html(firstParagraph)
.css({
top: e.pageY + 10,
left: e.pageX + 10
})
.show();
});
}, function() {
$('#custom-popup').hide();
});
});