打开/关闭搜索
搜索
打开/关闭菜单
228
885
35
2802
植物大战僵尸杂交版Wiki
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
上传文件
打开/关闭外观设置菜单
notifications
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
创建账号
登录
查看“︁MediaWiki:Common.js”︁的源代码
MediaWiki界面页面
查看
阅读
查看源代码
查看历史
associated-pages
系统消息
讨论
更多操作
←
MediaWiki:Common.js
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
此页面为本wiki上的软件提供界面文本,并受到保护以防止滥用。 如欲修改所有wiki的翻译,请访问
translatewiki.net
上的MediaWiki本地化项目。
您无权编辑此JavaScript页面,因为编辑此页面可能会影响所有访问者。
您可以查看和复制此页面的源代码。
/* 这里的任何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 () { // 动态注入彩虹样式 var rainbowStyle = document.createElement('style'); rainbowStyle.textContent = '.rainbow-user {' + 'font-weight: bold;' + 'background: repeating-linear-gradient(90deg, red 0px, orange 10px, yellow 20px, green 30px, blue 40px, indigo 50px, violet 60px);' + '-webkit-background-clip: text;' + '-webkit-text-fill-color: transparent;' + 'background-clip: text;' + 'color: #FFD700;' + '}' + '.rainbow-user::after {' + 'content: "⭐⭐⭐⭐⭐";' + 'margin-left: 2px;' + 'font-weight: normal;' + '-webkit-text-fill-color: initial;' + 'color: #FFD700;' + '}'; document.head.appendChild(rainbowStyle); // 辅助函数:提取纯净用户名 function getUserName(link) { var $span = $(link).find('span').first(); if ($span.length) return $span.text().trim(); return $(link).text().trim(); } // 核心:给链接上色 function colorizeLinks($links) { if ($links.length === 0) return; // 过滤出还没上色的链接(避免重复请求) var $fresh = $links.filter(function () { var cls = $(this).attr('class') || ''; return !/(bronze-user|silver-user|platinum-user|gold-user|rainbow-user)/.test(cls); }); if ($fresh.length === 0) return; // 收集用户名 var users = []; $fresh.each(function () { var name = getUserName(this); if (name && users.indexOf(name) === -1) users.push(name); }); if (users.length === 0) return; // 分批查询API 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 classMap = {}; if (data.query && data.query.users) { data.query.users.forEach(function (u) { var ec = u.editcount || 0; if (ec >= 5000) classMap[u.name] = 'rainbow-user'; else if (ec >= 2000) classMap[u.name] = 'gold-user'; else if (ec >= 1000) classMap[u.name] = 'platinum-user'; else if (ec >= 500) classMap[u.name] = 'silver-user'; else if (ec >= 1) classMap[u.name] = 'bronze-user'; }); } // 应用颜色类 $fresh.each(function () { var $this = $(this); var name = getUserName(this); var cls = classMap[name]; if (cls) { $this.removeClass('bronze-user silver-user platinum-user gold-user rainbow-user'); $this.addClass(cls); } }); }); }; var promise = $.Deferred().resolve(); batches.forEach(function (batch) { promise = promise.then(function () { return processBatch(batch); }); }); } // 全页面用户链接选择器(正文 + 可能存在的卡片容器) var linkSelector = 'a.mw-userlink, .citizen-menu_card-content a, .citizen-userMenu a'; // 1. 初始扫描 colorizeLinks($(linkSelector)); // 2. MutationObserver 监听 DOM 变化(处理动态插入的节点) var observer = new MutationObserver(function () { colorizeLinks($(linkSelector)); }); observer.observe(document.body, { childList: true, subtree: true }); // 3. 定时器兜底(每秒检查一次,确保万无一失) setInterval(function () { colorizeLinks($(linkSelector)); }, 1000); }); // ================== 排行榜(稳健版) ================== $(function () { // 等待页面完全就绪后稍微延迟,确保所有元素都已存在 setTimeout(function() { var $container = $('#edit-count-leaderboard'); if (!$container.length) return; $container.text('排行榜加载中……'); var api = new mw.Api(); api.get({ action: 'query', list: 'allusers', auprop: 'editcount', ausort: 'editcount', audit: 'desc', aulimit: 50 }).then(function (data) { var users = data.query.allusers || []; if (users.length === 0) { $container.text('暂无数据。'); return; } var html = '<table class="wikitable sortable" style="width:100%;"><tr><th>排名</th><th>用户</th><th>编辑数</th></tr>'; users.forEach(function (user, index) { var rank = index + 1; var name = user.name; var editcount = user.editcount || 0; var userUrl = mw.util.getUrl('User:' + name); html += '<tr><td>' + rank + '</td><td><a href="' + userUrl + '" class="mw-userlink">' + name + '</a></td><td>' + editcount + '</td></tr>'; }); html += '</table>'; $container.html(html); }).fail(function (err) { $container.text('排行榜获取失败,请稍后再试。'); console.error('排行榜API错误:', err); }); }, 100); // 延迟100毫秒,确保DOM完全就绪 });
返回
MediaWiki:Common.js
。
查看“︁MediaWiki:Common.js”︁的源代码
MediaWiki界面页面