Jump to content

MediaWiki:Common.js: Difference between revisions

Content deleted Content added
note gadgets
 
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 51: Line 51:
}
}
});
});

// Mobil-Fix für Template-Tooltips mit title-Attribut
$(document).ready(function() {
if ('ontouchstart' in window || navigator.maxTouchPoints > 0) {
$('.custom-tooltip, abbr[title]').on('click', function(e) {
e.preventDefault();
var titleText = $(this).attr('title');
if (titleText) {
// Erstellt ein temporäres mobiles Mini-Popup über dem Element
alert(titleText); // Einfachste Variante.
// Alternativ kann hier ein schickeres div-Popup eingeblendet werden.
}
});
}
});

mw.hook('wikipage.content').add(function($content) {
// Erkennt mobile Touch-Gesten
if ('ontouchstart' in window || navigator.maxTouchPoints > 0) {
// Sucht nach Ihrer CSS-Klasse (z. B. .wiki-tooltip)
$content.find('.wiki-tooltip').on('click', function(e) {
e.preventDefault();
e.stopPropagation();
// Holt sich das versteckte Kind-Element (den Tooltip-Text)
var $tooltipContent = $(this).find('.tooltip-content');
// Wechselt die Sichtbarkeit bei jedem Klick/Tippen
$('.tooltip-content').not($tooltipContent).hide(); // Schließt andere offene Tooltips
$tooltipContent.toggle();
});

// Schließt das Tooltip-Fenster, wenn man irgendwo anders hinklickt
$(document).on('click', function() {
$('.tooltip-content').hide();
});
}
});

/**
* Fix für den Kartographer / Leaflet.draw Fehler querySelectorAll("*,:x")
* Dieser Fehler tritt in modernen Browsern auf, wenn veraltete Leaflet-Bibliotheken
* einen ungültigen CSS-Selector verwenden.
*/
(function() {
try {
// Testen, ob der Browser bei diesem Selector abstürzt
document.querySelectorAll("*,:x");
} catch (e) {
// Falls ja (Sicherheitsfehler), patchen wir die Methode global
var nativeQuerySelectorAll = Element.prototype.querySelectorAll;
Element.prototype.querySelectorAll = function(selectors) {
if (selectors === "*,:x") {
// Wir ersetzen den ungültigen Selector durch einen sicheren
return nativeQuerySelectorAll.call(this, "*");
}
return nativeQuerySelectorAll.call(this, selectors);
};
console.log("Kartographer-Fix: querySelectorAll('*,:x') wurde erfolgreich umgeleitet.");
}
})();