打开/关闭菜单
228
885
35
2802
植物大战僵尸杂交版Wiki
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

MediaWiki:Common.js:修订间差异

MediaWiki界面页面
Operator留言 | 贡献
无编辑摘要
无编辑摘要
第19行: 第19行:
             }
             }
         });
         });
});
$(function () {
    // 只在查看页面时执行(可按需去掉这个判断)
    if (mw.config.get('wgAction') !== 'view') return;
    var $userlinks = $('a.mw-userlink'); // 用户链接通常带这个类
    if ($userlinks.length === 0) return;
    // 收集去重用户名
    var users = [];
    $userlinks.each(function () {
        var name = $(this).text().trim();
        if (name && users.indexOf(name) === -1) {
            users.push(name);
        }
    });
    if (users.length === 0) return;
    // 分批查询,防止 URL 过长
    var batchSize = 50;
    var batches = [];
    for (var i = 0; i < users.length; i += batchSize) {
        batches.push(users.slice(i, i + batchSize));
    }
    var processBatch = function (batch) {
        var api = new mw.Api();
        return api.get({
            action: 'query',
            list: 'users',
            ususers: batch.join('|'),
            usprop: 'editcount'
        }).then(function (data) {
            var golden = {};
            if (data.query && data.query.users) {
                data.query.users.forEach(function (u) {
                    if (u.editcount >= 1000) {
                        golden[u.name] = true;
                    }
                });
            }
            // 给符合条件的链接加上金色类
            $userlinks.each(function () {
                var $this = $(this);
                if (golden[$this.text().trim()]) {
                    $this.addClass('golden-user');
                }
            });
        });
    };
    // 按顺序执行每一批查询
    var promise = $.Deferred().resolve();
    batches.forEach(function (batch) {
        promise = promise.then(function () {
            return processBatch(batch);
        });
    });
});
});

2026年5月31日 (日) 05:54的版本

/* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */

// 自动加载 MediaWiki:Footer 页面内容,并插入到每个页面底部

$(document).ready(function() {
    const namespace = mw.config.get('wgNamespaceNumber');
    const action = mw.config.get('wgAction');
    
    if (namespace !== 0 || action !== 'view') {
        return;
    }

    fetch("/api.php?action=parse&page=MediaWiki:Footer&format=json")
        .then(res => res.json())
        .then(data => {
            if (data.parse && data.parse.text) {
                const html = data.parse.text['*'];
                $('#mw-content-text').append('<div class="global-footer">' + html + '</div>');
            }
        });
});
$(function () {
    // 只在查看页面时执行(可按需去掉这个判断)
    if (mw.config.get('wgAction') !== 'view') return;

    var $userlinks = $('a.mw-userlink'); // 用户链接通常带这个类
    if ($userlinks.length === 0) return;

    // 收集去重用户名
    var users = [];
    $userlinks.each(function () {
        var name = $(this).text().trim();
        if (name && users.indexOf(name) === -1) {
            users.push(name);
        }
    });

    if (users.length === 0) return;

    // 分批查询,防止 URL 过长
    var batchSize = 50;
    var batches = [];
    for (var i = 0; i < users.length; i += batchSize) {
        batches.push(users.slice(i, i + batchSize));
    }

    var processBatch = function (batch) {
        var api = new mw.Api();
        return api.get({
            action: 'query',
            list: 'users',
            ususers: batch.join('|'),
            usprop: 'editcount'
        }).then(function (data) {
            var golden = {};
            if (data.query && data.query.users) {
                data.query.users.forEach(function (u) {
                    if (u.editcount >= 1000) {
                        golden[u.name] = true;
                    }
                });
            }
            // 给符合条件的链接加上金色类
            $userlinks.each(function () {
                var $this = $(this);
                if (golden[$this.text().trim()]) {
                    $this.addClass('golden-user');
                }
            });
        });
    };

    // 按顺序执行每一批查询
    var promise = $.Deferred().resolve();
    batches.forEach(function (batch) {
        promise = promise.then(function () {
            return processBatch(batch);
        });
    });
});