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);
});
});