打开/关闭菜单
60
73
29
1.1K
武外梗百科
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

MediaWiki:Common.js:修订间差异

MediaWiki界面页面
无编辑摘要
无编辑摘要
第24行: 第24行:
`);
`);


    mw.loader.using('mediawiki.util').then(function() {
mw.loader.using('mediawiki.util').then(function() {
     document.addEventListener("DOMContentLoaded", function() {
     document.addEventListener('DOMContentLoaded', function () {
         fetch(mw.util.wikiScript() + '?action=ajax&rs=getCSWordCount')
         // 找不到容器就不继续
            .then(response => response.json())
        var el = document.getElementById('cs-wordcount-number');
            .then(data => {
        if (!el) return;
                let el = document.getElementById('wordcount-number');
                if (!el) return;
                let count = data.total || 0;


                // 数字滚动动画
        // 调用 Siteinfo API 获取字数
                let current = 0;
        new mw.Api().get({
                let step = Math.ceil(count / 100); // 100步完成
            action: 'query',
                let interval = setInterval(() => {
            meta: 'siteinfo',
                    current += step;
            siprop: 'statistics',
                    if (current >= count) {
            formatversion: 2
                        current = count;
        }).done(function (data) {
                        clearInterval(interval);
            var stats = data.query && data.query.statistics;
                    }
            var totalWords = stats ? stats['cirrussearch-article-words'] || 0 : 0;
                    el.textContent = current.toLocaleString();
 
                }, 20);
            // 动画从 0 滚到真实数值
            })
            var current = 0;
             .catch(err => console.error("获取字数失败:", err));
            var target = totalWords;
            var step = Math.ceil(target / 100); // 100 步
            if (step < 1) step = 1;
 
            var interval = setInterval(function () {
                current += step;
                if (current >= target) {
                    current = target;
                    clearInterval(interval);
                }
                el.textContent = current.toLocaleString();
            }, 20); // 每帧 20ms
        }).fail(function () {
             console.error('获取字数 API 失败');
        });
     });
     });
});
});