Diferencia entre revisiones de «MediaWiki:Common.js»

De Vanaheim Wiki
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Sin resumen de edición
Línea 1: Línea 1:
$(document).ready(function() {
$(function() {
  if ($('#copy-message').length === 0) {
    // Busca todos los elementos con la clase 'copiar-portapapeles'
     $('body').append('<div id="copy-message" style="position:fixed; bottom:20px; right:20px; background:#4CAF50; color:white; padding:8px 12px; border-radius:4px; display:none; font-weight:bold; z-index:9999;">¡Copiado!</div>');
     $('.copiar-portapapeles').on('click', function() {
  }
        var textoACopiar = $(this).data('texto-a-copiar');
 
       
  $(document).on('click', '.copy-text', function() {
        // Crea un elemento de texto temporal para copiar su contenido
    var text = $(this).attr('data-copy');
         var $temp = $("<textarea>");
    console.log('Intentando copiar:', text);
        $("body").append($temp);
    if (!text) {
        $temp.val(textoACopiar).select();
      alert('Error: no hay texto para copiar');
       
      return;
        try {
    }
            document.execCommand("copy");
 
            // Muestra una notificación de éxito
    if (navigator.clipboard && window.isSecureContext) {
            mw.notify('¡Texto copiado al portapapeles!', { type: 'success' });
      navigator.clipboard.writeText(text).then(() => {
         } catch (e) {
        $('#copy-message').fadeIn(200).delay(1000).fadeOut(200);
            mw.notify('Error al copiar el texto.', { type: 'error' });
        console.log('Copiado con Clipboard API');
        }
      }).catch(err => {
       
         console.error('Clipboard API falló:', err);
        $temp.remove();
        fallbackCopy(text);
     });
      });
    } else {
      fallbackCopy(text);
    }
  });
 
  function fallbackCopy(text) {
    try {
      var $temp = $('<textarea>');
      $('body').append($temp);
      $temp.val(text).select();
      var successful = document.execCommand('copy');
      $temp.remove();
      if (successful) {
        $('#copy-message').fadeIn(200).delay(1000).fadeOut(200);
        console.log('Copiado con execCommand');
      } else {
        alert('Error: no se pudo copiar al portapapeles');
         console.error('execCommand copy falló');
      }
    } catch(e) {
      alert('Error al copiar: ' + e);
      console.error(e);
     }
  }
});
});

Revisión del 18:20 17 jul 2025

$(function() {
    // Busca todos los elementos con la clase 'copiar-portapapeles'
    $('.copiar-portapapeles').on('click', function() {
        var textoACopiar = $(this).data('texto-a-copiar');
        
        // Crea un elemento de texto temporal para copiar su contenido
        var $temp = $("<textarea>");
        $("body").append($temp);
        $temp.val(textoACopiar).select();
        
        try {
            document.execCommand("copy");
            // Muestra una notificación de éxito
            mw.notify('¡Texto copiado al portapapeles!', { type: 'success' });
        } catch (e) {
            mw.notify('Error al copiar el texto.', { type: 'error' });
        }
        
        $temp.remove();
    });
});