MediaWiki:Gadget-LiveClock.js

Материал из Тептар
Перейти к навигации Перейти к поиску

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

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl+F5 или Ctrl+R (⌘+R на Mac)
  • Google Chrome: Нажмите Ctrl+Shift+R (⌘+Shift+R на Mac)
  • Edge: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl+F5
  • Opera: Нажмите Ctrl+F5.
console.log("Скрипт LiveClock запущен!");

mw.loader.using(['mediawiki.util']).then(function () {
    console.log("Модуль mediawiki.util успешно загружен");
    
    var purgeUrl = mw.util.getUrl(mw.config.get('wgPageName'), { action: 'purge' });
    
    var clockNode = mw.util.addPortletLink(
        'p-personal',
        purgeUrl,
        '00:00:00', // Изначальный текст
        'pt-liveclock',
        'Очистить кэш',
        '',
        '#pt-userpage'
    );

    console.log("Результат создания элемента clockNode:", clockNode);

    if (!clockNode) {
        console.error("ОШИБКА: Движок не смог найти меню 'p-personal' для вставки часов. Возможно, у вас используется нестандартная тема оформления.");
        return;
    }
    
    var link = clockNode.querySelector('a') || clockNode;
    link.style.fontWeight = 'bold';

    function updateTime() {
        var d = new Date();
        var h = String(d.getHours()).padStart(2, '0');
        var m = String(d.getMinutes()).padStart(2, '0');
        var s = String(d.getSeconds()).padStart(2, '0');
        link.textContent = h + ':' + m + ':' + s;
    }

    updateTime();
    setInterval(updateTime, 1000);
    console.log("Часы успешно запущены!");
});