MediaWiki:Common.js

From XilePK - Ragnarok Online Server
Revision as of 15:57, 9 May 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.
/* Função melhorada para a funcionalidade de cópia */
function initImageCopy() {
  // Adiciona a funcionalidade warp-copy para links de imagem
  $('.tile-top.tile-image a').each(function() {
    var $link = $(this);
    if (!$link.hasClass('warp-copy')) {
      var href = $link.attr('href') || '';
      var npcId = href.replace('#','');
      if (npcId) {
        $link.addClass('warp-copy')
             .attr('data-copy', '@warp ' + npcId)
             .css('cursor', 'pointer');
        
        // Adiciona eventos de click específicos para garantir o feedback visual
        $link.off('click').on('click', function(e) {
          e.preventDefault();
          e.stopPropagation();
          
          var textToCopy = $(this).attr('data-copy');
          
          // Cria elemento temporário para cópia
          var tempInput = document.createElement('textarea');
          tempInput.value = textToCopy;
          document.body.appendChild(tempInput);
          tempInput.select();
          document.execCommand('copy');
          document.body.removeChild(tempInput);
          
          // Adiciona classe para feedback visual
          var $element = $(this);
          $element.addClass('copied');
          console.log("Texto copiado da imagem: " + textToCopy);
          
          // Remove a classe após 2 segundos
          setTimeout(function() {
            $element.removeClass('copied');
          }, 2000);
          
          return false;
        });
      }
    }
  });
}

// Remova o evento de click genérico para .warp-copy e use eventos específicos
$(document).ready(function() {
  // Função para texto
  $(document).on('click', '.warp-copy:not(.tile-top.tile-image a)', function(e) {
    e.preventDefault();
    var textToCopy = $(this).attr('data-copy');
    
    // Cria elemento temporário para cópia
    var tempInput = document.createElement('textarea');
    tempInput.value = textToCopy;
    document.body.appendChild(tempInput);
    tempInput.select();
    document.execCommand('copy');
    document.body.removeChild(tempInput);
    
    // Adiciona classe para feedback visual
    var $element = $(this);
    $element.addClass('copied');
    console.log("Texto copiado do texto: " + textToCopy);
    
    setTimeout(function() {
      $element.removeClass('copied');
    }, 2000);
  });
  
  // Inicializa a funcionalidade para imagens
  setTimeout(function() {
    initImageCopy();
  }, 300);
  
  // Reinicializa ao atualizar conteúdo wiki
  if (typeof mw !== 'undefined' && mw.hook) {
    mw.hook('wikipage.content').add(function() {
      setTimeout(function() {
        initImageCopy();
      }, 300);
    });
  }
});