antonio_pedro

Teste JS Puhekupla

Nov 15th, 2025 (edited)
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 2.28 KB | Source Code | 0 0
  1. // Expandir TODOS os tooltips - By Antonio (2025)
  2. // Expande todos os balões, remove ..., separa por linha e evita sobreposição
  3.  
  4. (function() {
  5.     'use strict';
  6.  
  7.     // Remove todos os "..." e prepara o container
  8.     document.querySelectorAll('td').forEach(cell => {
  9.         if (cell.textContent.trim() === '...') {
  10.             cell.innerHTML = ''; // Limpa o ...
  11.             cell.style.padding = '8px 0';
  12.             cell.style.borderBottom = '1px solid #eee';
  13.             cell.style.minHeight = '40px';
  14.         }
  15.     });
  16.  
  17.     // Processa todos os elementos com tooltip
  18.     document.querySelectorAll('[rel^="tooltip-"]').forEach(el => {
  19.         const tooltipKey = el.getAttribute('rel');
  20.         const tooltipText = tooltipKey.replace('tooltip-', '').trim();
  21.  
  22.         // Decodifica HTML entities (ex: <br> vira \n)
  23.         const parser = new DOMParser();
  24.         const decoded = parser.parseFromString(
  25.             `<div>${tooltipText}</div>`, 'text/html'
  26.         ).body.firstChild.innerHTML;
  27.  
  28.         // Limpa o title para não aparecer no hover
  29.         el.title = '';
  30.  
  31.         // Cria um container para o conteúdo expandido
  32.         const infoBox = document.createElement('div');
  33.         infoBox.style.marginTop = '6px';
  34.         infoBox.style.fontSize = '11.5px';
  35.         infoBox.style.color = '#444';
  36.         infoBox.style.lineHeight = '1.4';
  37.         infoBox.style.fontFamily = 'Consolas, monospace';
  38.         infoBox.innerHTML = decoded
  39.             .replace(/\n/g, '<br>')
  40.             .replace(/AKA:/g, '<span style="color:#d32f2f; font-weight:600;">AKA:</span>')
  41.             .replace(/VIA:/g, '<span style="color:#388e3c; font-style:italic;">VIA:</span>');
  42.  
  43.         // Insere logo abaixo do nick
  44.         el.parentNode.insertBefore(infoBox, el.nextSibling);
  45.  
  46.         // Opcional: remove o rel para evitar reprocessamento
  47.         el.removeAttribute('rel');
  48.     });
  49.  
  50.     // Adiciona separador visual entre linhas
  51.     document.querySelectorAll('tr').forEach((row, index) => {
  52.         if (index > 0) {
  53.             row.style.borderTop = '2px solid #f0f0f0';
  54.         }
  55.     });
  56.  
  57.     console.log('Todos os tooltips expandidos com sucesso! Separados e legíveis.');
  58.     console.log('Total de tooltips processados:', document.querySelectorAll('[rel^="tooltip-"]').length);
  59. })();
Advertisement
Add Comment
Please, Sign In to add comment