MediaWiki:Common.js

From XilePK - Ragnarok Online Server
Revision as of 12:14, 11 April 2025 by Admin (talk | contribs)
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);
  });
});