MediaWiki:Common.js

De FSF

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)
  • Edge: mantenga presionada Ctrl mientras pulsa Actualizar, o presione Ctrl+F5
/* Cualquier código JavaScript escrito aquí se cargará para todos los usuarios en cada carga de página */
/* 20260224 - Anexo para agregar encabezado arriba del SUMARIO del toc. Plantilla:FSF Panel Diario */
/* 20260226 - FSF Panel Diario ultra ligero sin API */
/* --------------------------------------------------------------- */

/* -- Para poder ver la cantidad de vistas de la pagina segun el footer de WikiFSF - 2260325 */
mw.hook('wikipage.content').add(function () {

    let footer = document.getElementById('footer-info');
    let panel  = document.getElementById('fsf-views');

    if (!footer || !panel) return;

    let texto = footer.innerText;

    let match = texto.match(/(\d+)\s+visitas/);

    if (match) {
        panel.textContent = " " + match[1] + " ";
    } else {
        panel.textContent = "—";
    }

});

/* --
document.addEventListener("DOMContentLoaded", function () {

    function buscarVistas() {
        let footer = document.querySelector("#footer-info");
        let panel = document.getElementById("fsf-views");

        if (!footer || !panel) return false;

        let texto = footer.innerText;

        let match = texto.match(/(\d+)\s+visitas/);

        if (match) {
            panel.innerHTML = "👁️ " + match[1] + " visitas";
            return true;
        }

        return false;
    }

    // Intentar varias veces (clave en MediaWiki)
    let intentos = 0;
    let intervalo = setInterval(function () {

        if (buscarVistas() || intentos > 10) {
            clearInterval(intervalo);
        }

        intentos++;

    }, 300);

});
--/

/* --
document.addEventListener("DOMContentLoaded", function () {

    // Buscar el texto de vistas en el footer
    let footerViews = document.querySelector("#footer-info-views");

    // Buscar el contenedor en el FSF Panel
    let panelViews = document.getElementById("fsf-views");

    if (footerViews && panelViews) {
        panelViews.innerHTML = footerViews.innerText;
    }

});
--}}

/* -- Ciertas ligas externas no cierran la ventana local o actual; si se usa la Plantilla:Ext la URL se abre en un pestaña nueva. --*/
mw.loader.using('mediawiki.util').then(function () {
    $(function () {

        $('a.external').each(function () {
            if (!this.href.includes(location.hostname)) {
                $(this)
                    .attr('target', '_blank')
                    .attr('rel', 'noopener noreferrer');
            }
        });

    });
});
/* --
document.addEventListener("DOMContentLoaded", function () {

    document.querySelectorAll("a.external").forEach(function(link) {
        link.setAttribute("target", "_blank");
        link.setAttribute("rel", "noopener noreferrer");
    });

}); --*/
/* --------------------------------------------------------------- */
/*
mw.loader.using('mediawiki.util').then(function () {

    $(function () {

        // Solo si existe TOC
        if (!$('#toc').length) return;

        var pageId = mw.config.get('wgArticleId');
        var namespace = mw.config.get('wgNamespaceNumber');
        var isSpecial = mw.config.get('wgCanonicalSpecialPageName');

        // Evitar páginas especiales o sin ID real
        if (!pageId || pageId <= 0 || isSpecial) return;

        var panelHTML =
            '<div class="fsf-panel-container" ' +
            'style="margin-bottom:8px; padding:6px 10px; background:#f8f9fa; border:1px solid #ddd; font-size:90%;">' +
            '<strong>FSF Diario</strong> · ID: ' + pageId +
            '</div>';

        $('#toc').prepend(panelHTML);

    });

});
*/