Zum Inhalt springen

MediaWiki:Gadget-MyCoolGadget.js

Aus Home Wiki
Version vom 14. Februar 2026, 10:44 Uhr von Saya (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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.loader.using(['mediawiki.util']).then(function () {

    function copyText(text, btn) {

        // Versuch modernes Clipboard API
        if (navigator.clipboard && window.isSecureContext) {
            navigator.clipboard.writeText(text).then(success);
            return;
        }

        // Fallback (funktioniert über HTTP / LAN)
        const textarea = document.createElement("textarea");
        textarea.value = text;
        document.body.appendChild(textarea);
        textarea.select();
        document.execCommand("copy");
        document.body.removeChild(textarea);
        success();

        function success() {
            btn.textContent = "✅ Kopiert!";
            setTimeout(() => btn.textContent = "📋 Kopieren", 1500);
        }
    }

    function addCopyButtons() {

        document.querySelectorAll('pre, .mw-highlight pre').forEach(function (block) {

            if (block.dataset.copyButtonAdded) return;
            block.dataset.copyButtonAdded = "true";

            const btn = document.createElement("button");
            btn.textContent = "📋 Kopieren";
            btn.style.float = "right";
            btn.style.margin = "4px";
            btn.style.padding = "4px 8px";
            btn.style.fontSize = "12px";
            btn.style.cursor = "pointer";

            btn.onclick = function () {
                copyText(block.innerText, btn);
            };

            block.parentNode.insertBefore(btn, block);
        });
    }

    addCopyButtons();
    mw.hook('wikipage.content').add(addCopyButtons);
});