MediaWiki:Common.js

From OmegaMMO
Revision as of 00:46, 21 May 2025 by Epsilon (talk | contribs) (Created page with "→‎Any JavaScript here will be loaded for all users on every page load.: // Asegurarse de que el DOM esté listo antes de ejecutar el script $(function() { // Función para copiar texto al portapapeles function copyTextToClipboard(text) { if (!navigator.clipboard) { // Fallback para navegadores antiguos o si navigator.clipboard no está disponible // Puedes usar un alert o un método más simple como un prompt (ver notas abajo)...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */
// Asegurarse de que el DOM esté listo antes de ejecutar el script
$(function() {
    // Función para copiar texto al portapapeles
    function copyTextToClipboard(text) {
        if (!navigator.clipboard) {
            // Fallback para navegadores antiguos o si navigator.clipboard no está disponible
            // Puedes usar un alert o un método más simple como un prompt (ver notas abajo)
            alert("Tu navegador no soporta la API de portapapeles. Por favor, copia el texto manualmente: " + text);
            return;
        }
        navigator.clipboard.writeText(text).then(function() {
            console.log('Texto copiado al portapapeles: ' + text);
            // Opcional: Mostrar un mensaje al usuario
            mw.notify('Texto copiado al portapapeles: ' + text, { tag: 'copy-success', type: 'success' });
        }).catch(function(err) {
            console.error('Error al copiar texto: ', err);
            mw.notify('No se pudo copiar el texto. Inténtalo de nuevo o cópialo manualmente.', { tag: 'copy-fail', type: 'error' });
        });
    }

    // Delegar el evento click para elementos con la clase 'copy-link'
    // Esto asegura que funcione incluso si el elemento se añade dinámicamente
    $('body').on('click', '.copy-link', function(e) {
        e.preventDefault(); // Evita que el enlace siga su href
        var textToCopy = $(this).data('text-to-copy');
        if (textToCopy) {
            copyTextToClipboard(textToCopy);
        } else {
            console.warn('El enlace de copia no tiene el atributo data-text-to-copy.');
        }
    });
});