Menú alternativo
Alternar el menú de preferencias
Menú alternativo personal
No has accedido
Tu dirección IP será visible si haces alguna edición

Diferencia entre revisiones de «MediaWiki:Common.js»

Página de la interfaz de MediaWiki
Sin resumen de edición
Etiqueta: Revertido
Sin resumen de edición
Etiqueta: Revertido
Línea 1: Línea 1:
/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios en cada carga de página */
/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios en cada carga de página */
// Esperar a que SyntaxHighlight termine de cargar
// ESPERAR A QUE CARGUE TODO
mw.hook('wikipage.content').add(function ($content) {
$(function() {
    // Función para añadir feedback al botón
     function fixCopyButtons() {
     function addCopyFeedback() {
         $('.mw-highlight .mw-code-copy').each(function() {
         $content.find('.mw-code-copy').off('click.copyFeedback').on('click.copyFeedback', function() {
             var $btn = $(this);
             var $btn = $(this);
             $btn.addClass('copied');
             $btn.off('click.copyFix').on('click.copyFix', function(e) {
            setTimeout(function() {
                e.preventDefault();
                $btn.removeClass('copied');
                e.stopPropagation();
            }, 2000);
               
                // Copiar código
                var codeBlock = $(this).closest('.mw-highlight');
                var code = codeBlock.find('pre').text() || codeBlock.text();
               
                navigator.clipboard.writeText(code).then(function() {
                    $btn.addClass('copied');
                    setTimeout(function() {
                        $btn.removeClass('copied');
                    }, 2000);
                });
            });
         });
         });
     }
     }
      
      
     // Inicial
     // Inicial y observer para bloques dinámicos
     addCopyFeedback();
     fixCopyButtons();
      
      
     // Re-ejecutar si se cargan más bloques dinámicamente
     // MutationObserver para nuevos bloques
     mw.hook('SyntaxHighlight::done').add(addCopyFeedback);
     var observer = new MutationObserver(function() {
        fixCopyButtons();
    });
    observer.observe(document.body, { childList: true, subtree: true });
});
});

Revisión del 13:29 26 ene 2026

/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios en cada carga de página */
// ESPERAR A QUE CARGUE TODO
$(function() {
    function fixCopyButtons() {
        $('.mw-highlight .mw-code-copy').each(function() {
            var $btn = $(this);
            $btn.off('click.copyFix').on('click.copyFix', function(e) {
                e.preventDefault();
                e.stopPropagation();
                
                // Copiar código
                var codeBlock = $(this).closest('.mw-highlight');
                var code = codeBlock.find('pre').text() || codeBlock.text();
                
                navigator.clipboard.writeText(code).then(function() {
                    $btn.addClass('copied');
                    setTimeout(function() {
                        $btn.removeClass('copied');
                    }, 2000);
                });
            });
        });
    }
    
    // Inicial y observer para bloques dinámicos
    fixCopyButtons();
    
    // MutationObserver para nuevos bloques
    var observer = new MutationObserver(function() {
        fixCopyButtons();
    });
    observer.observe(document.body, { childList: true, subtree: true });
});