MediaWiki:Common.js:修订间差异
外观
创建页面,内容为“→这里的任何JavaScript将为所有用户在每次页面加载时加载。: $(function() { var PAD = 6; var BASE_URL = 'https://wiki.meltfi.top/Special:Filepath/'; var container = document.getElementById('neko-page-counter'); if (!container) return; var total = mw.config.get('wgNumberOfPages') || 0; var digits = String(total).padStart(PAD, '0').split(''); container.innerHTML = ''; container.style.cssText = '…” |
无编辑摘要 |
||
| 第5行: | 第5行: | ||
var container = document.getElementById('neko-page-counter'); | var container = document.getElementById('neko-page-counter'); | ||
if (!container) return; | if (!container) { | ||
console.log('[NekoDebug] 容器不存在'); | |||
return; | |||
} | |||
// 检查 wgNumberOfPages | |||
var total = mw.config.get('wgNumberOfPages'); | |||
console.log('[NekoDebug] wgNumberOfPages =', total); | |||
// 如果获取失败,先用测试数字 123456 验证图片路径 | |||
if (!total || total === 0) { | |||
console.log('[NekoDebug] 页面总数为 0 或获取失败,临时使用测试数字 123456'); | |||
total = 123456; | |||
} | |||
var digits = String(total).padStart(PAD, '0').split(''); | var digits = String(total).padStart(PAD, '0').split(''); | ||
console.log('[NekoDebug] 拆解结果:', digits); | |||
container.innerHTML = ''; | container.innerHTML = ''; | ||
| 第16行: | 第29行: | ||
var imgW = Math.max(28, Math.min(100, Math.floor((parentW - 20) / PAD))); | var imgW = Math.max(28, Math.min(100, Math.floor((parentW - 20) / PAD))); | ||
var imgH = Math.round(imgW * 1.25); | var imgH = Math.round(imgW * 1.25); | ||
console.log('[NekoDebug] 容器宽度:', parentW, '单张尺寸:', imgW, 'x', imgH); | |||
digits.forEach(function(d) { | digits.forEach(function(d, i) { | ||
var img = document.createElement('img'); | var img = document.createElement('img'); | ||
var url = BASE_URL + d + '.gif'; | |||
img.src = url; | |||
img.alt = d; | img.alt = d; | ||
img.style.cssText = 'width:' + imgW + 'px;height:' + imgH + 'px;object-fit:contain;image-rendering:pixelated;display:block;'; | img.style.cssText = 'width:' + imgW + 'px;height:' + imgH + 'px;object-fit:contain;image-rendering:pixelated;display:block;'; | ||
console.log('[NekoDebug] 第', i, '张 URL:', url); | |||
img.onload = function() { | |||
console.log('[NekoDebug] 第', i, '张加载成功:', d + '.gif'); | |||
}; | |||
img.onerror = function() { | img.onerror = function() { | ||
console.log('[NekoDebug] 第', i, '张加载失败:', d + '.gif', 'URL:', url); | |||
var fb = document.createElement('div'); | var fb = document.createElement('div'); | ||
fb.textContent = d; | fb.textContent = d; | ||
2026年7月13日 (一) 22:06的版本
/* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */
$(function() {
var PAD = 6;
var BASE_URL = 'https://wiki.meltfi.top/Special:Filepath/';
var container = document.getElementById('neko-page-counter');
if (!container) {
console.log('[NekoDebug] 容器不存在');
return;
}
// 检查 wgNumberOfPages
var total = mw.config.get('wgNumberOfPages');
console.log('[NekoDebug] wgNumberOfPages =', total);
// 如果获取失败,先用测试数字 123456 验证图片路径
if (!total || total === 0) {
console.log('[NekoDebug] 页面总数为 0 或获取失败,临时使用测试数字 123456');
total = 123456;
}
var digits = String(total).padStart(PAD, '0').split('');
console.log('[NekoDebug] 拆解结果:', digits);
container.innerHTML = '';
container.style.cssText = 'display:flex;align-items:flex-end;justify-content:center;gap:0;padding:10px;background:#0f0f1a;border-radius:8px;border:1px solid #2a2a40;min-height:100px;';
var parentW = container.parentElement ? container.parentElement.clientWidth : 600;
var imgW = Math.max(28, Math.min(100, Math.floor((parentW - 20) / PAD)));
var imgH = Math.round(imgW * 1.25);
console.log('[NekoDebug] 容器宽度:', parentW, '单张尺寸:', imgW, 'x', imgH);
digits.forEach(function(d, i) {
var img = document.createElement('img');
var url = BASE_URL + d + '.gif';
img.src = url;
img.alt = d;
img.style.cssText = 'width:' + imgW + 'px;height:' + imgH + 'px;object-fit:contain;image-rendering:pixelated;display:block;';
console.log('[NekoDebug] 第', i, '张 URL:', url);
img.onload = function() {
console.log('[NekoDebug] 第', i, '张加载成功:', d + '.gif');
};
img.onerror = function() {
console.log('[NekoDebug] 第', i, '张加载失败:', d + '.gif', 'URL:', url);
var fb = document.createElement('div');
fb.textContent = d;
fb.style.cssText = 'width:' + imgW + 'px;height:' + imgH + 'px;display:flex;align-items:center;justify-content:center;background:#333;color:#ff9ecd;font-size:' + Math.max(12, Math.floor(imgW * 0.4)) + 'px;font-weight:bold;font-family:monospace;border-radius:3px;';
if (img.parentNode) img.parentNode.replaceChild(fb, img);
};
container.appendChild(img);
});
});