MediaWiki:Common.js

From RVM Wiki
Revision as of 09:53, 2 July 2026 by WikiSysop (talk | contribs) (Created page with "Any JavaScript here will be loaded for all users on every page load.: $(function () { Adds copy button Chatgp: function addCopyButton(pre) { if ($(pre).data('copyButtonAdded')) return; $(pre).data('copyButtonAdded', true); var $pre = $(pre).closest('.mw-highlight, pre').first(); var target = $(pre).text(); var $wrapper = $pre.parent(); $wrapper.css('position', 'relative'); var $btn = $('<button>')...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */

$(function () {
/* Adds copy button Chatgp */
    function addCopyButton(pre) {
        if ($(pre).data('copyButtonAdded')) return;
        $(pre).data('copyButtonAdded', true);

        var $pre = $(pre).closest('.mw-highlight, pre').first();
        var target = $(pre).text();

        var $wrapper = $pre.parent();
        $wrapper.css('position', 'relative');

        var $btn = $('<button>')
            .text('???? Copia')
            .css({
                position: 'absolute',
                top: '6px',
                right: '6px',
                fontSize: '12px',
                cursor: 'pointer',
                zIndex: 1000
            })
            .on('click', async function () {
                try {
                    await navigator.clipboard.writeText(target);
                    $btn.text('✔ Copiato');
                    setTimeout(() => $btn.text('???? Copia'), 1500);
                } catch (e) {
                    console.error(e);
                    alert('Errore copia');
                }
            });

        $wrapper.append($btn);
    }

    // pre normali
    $('pre').each(function () {
        addCopyButton(this);
    });

});