MediaWiki:Common.js
Nota: Después de publicar, quizás necesite actualizar la caché de su navegador para ver los cambios.
- Firefox/Safari: Mantenga presionada la tecla Shift mientras pulsa el botón Actualizar, o presiona Ctrl+F5 o Ctrl+R (⌘+R en Mac)
- Google Chrome: presione Ctrl+Shift+R (⌘+Shift+R en Mac)
- Internet Explorer/Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
- Opera: Presiona Ctrl+F5.
/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios en cada carga de página */ // Highlight search terms when coming from search results (function() { function getSearchTerms() { var searchParams = new URLSearchParams(window.location.search); var search = searchParams.get('search'); return search ? search.split(/\s+/) : []; } function highlightSearchTerms() { var terms = getSearchTerms(); if (!terms.length) return; var content = document.getElementById('mw-content-text'); if (!content) return; terms.forEach(function(term) { if (term.length < 3) return; // Skip short terms var regex = new RegExp('(' + term.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&') + ')', 'gi'); var walker = document.createTreeWalker( content, NodeFilter.SHOW_TEXT, null, false ); var node; var nodes = []; while (node = walker.nextNode()) { nodes.push(node); } nodes.forEach(function(node) { if (node.parentNode.nodeName !== 'SCRIPT' && node.parentNode.nodeName !== 'STYLE' && !node.parentNode.classList.contains('searchmatch')) { var text = node.textContent; if (regex.test(text)) { var span = document.createElement('span'); span.innerHTML = text.replace(regex, '<span class="searchmatch">$1</span>'); node.parentNode.replaceChild(span, node); } } }); }); } // Add CSS styles for highlighted terms var style = document.createElement('style'); style.textContent = ` .searchmatch { background-color: #ffeb3b; padding: 2px; border-radius: 2px; } `; document.head.appendChild(style); // Run highlighter when page loads if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', highlightSearchTerms); } else { highlightSearchTerms(); } })();