MediaWiki:Common.js
Jump to navigation
Jump to search
Note: After saving, 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: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
/* Any JavaScript here will be loaded for all users on every page load. */ $(document).ready(function() { // Função para processar as tags warp function processWarpTags() { console.log("Processando tags warp..."); // Obtém o conteúdo da página var content = $('.mw-parser-output').html(); if (!content) return; // Padrão mais flexível para capturar a tag var pattern = /<v\s+(.*?)\s+<c\s+(@warp.*?)\s+<c>\s+v>/gi; // Substitui o padrão por um span clicável var newContent = content.replace(pattern, function(match, visible, copyText) { console.log("Match encontrado:", visible, copyText); return '<span class="warp-copy" data-copy="' + copyText.trim() + '" style="color:#0066cc;cursor:pointer;border-bottom:1px dotted #0066cc;">' + visible.trim() + '</span>'; }); // Atualiza o conteúdo se houve mudanças if (content !== newContent) { console.log("Conteúdo atualizado"); $('.mw-parser-output').html(newContent); } } // Adiciona o handler de clique $(document).on('click', '.warp-copy', function() { var text = $(this).attr('data-copy'); console.log("Copiando:", text); var temp = document.createElement('textarea'); temp.value = text; document.body.appendChild(temp); temp.select(); document.execCommand('copy'); document.body.removeChild(temp); // Feedback visual var origColor = $(this).css('color'); $(this).css('color', 'green'); var self = this; setTimeout(function() { $(self).css('color', origColor); }, 500); }); // Executa a função após o carregamento da página setTimeout(processWarpTags, 500); // Também executa quando o conteúdo é atualizado via AJAX mw.hook('wikipage.content').add(function() { setTimeout(processWarpTags, 500); }); });