MediaWiki:Common.js

Материал из Revera Wiki

Замечание: Возможно, после публикации вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
  • Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
  • Internet Explorer / Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
  • Opera: Нажмите Ctrl+F5.
mw.loader.load("https://revera.world/js/reverin-date.js");

document.addEventListener("DOMContentLoaded", function() {
    let sidebar = document.getElementById("p-navigation") || document.getElementById("p-tb");

    function ensureReverinDateWidget() {
        if (sidebar && !document.getElementById("reverinDateWidget")) {
            let dateDiv = document.createElement("div");
            dateDiv.id = "reverinDateWidget";
            dateDiv.style.padding = "10px";
            dateDiv.style.borderTop = "1px solid #ccc";
            dateDiv.style.marginTop = "10px";
            dateDiv.style.fontWeight = "bold";
            dateDiv.style.whiteSpace = "pre-line";
            dateDiv.innerText = "Загрузка реверинской даты...";

            sidebar.appendChild(dateDiv);
            console.log("`#reverinDateWidget` вставлен в сайтбар!");
        }
    }

    function waitForReverinScript(callback) {
        let attempts = 0;
        let checkInterval = setInterval(function() {
            if (typeof window.loadReverinDate === "function") {
                clearInterval(checkInterval);
                console.log("Скрипт `reverin-date.js` загружен, запускаем!");
                window.loadReverinDate();
                callback();
            } else if (attempts >= 20) {
                clearInterval(checkInterval);
                console.error("Ошибка: `reverin-date.js` не загрузился!");
            }
            attempts++;
        }, 250);
    }

    function waitForTooltips() {
        let attempts = 0;
        let checkInterval = setInterval(function() {
            if (typeof window.addTooltipHandlers === "function") {
                clearInterval(checkInterval);
                console.log("Подсказки загружены, запускаем!");
                window.addTooltipHandlers();
            } else if (attempts >= 20) {
                clearInterval(checkInterval);
                console.error("Ошибка: `addTooltipHandlers` не загрузился!");
            }
            attempts++;
        }, 250);
    }

    ensureReverinDateWidget();
    waitForReverinScript(waitForTooltips);
});