MediaWiki:Common.js: Difference between revisions
Appearance
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."); |
|||
} |
|||
})(); |
|||