“MediaWiki:Common.js”的版本间差异
跳转到导航
跳转到搜索
小 (导入1个版本) |
|
(没有差异)
| |
2025年10月8日 (三) 17:08:09的版本
/* 这里的任何JavaScript将为所有用户在每次页面载入时加载。 */
// 显示最近更新页面(无复杂运算符,纯基础语法)
function loadRecentChanges() {
// 查找容器
var container = null;
var sidebarItems = document.querySelectorAll('#mw-panel li a');
for (var i = 0; i < sidebarItems.length; i++) {
if (sidebarItems[i].textContent.includes('最近更新:')) {
console.log('找到了“最近更新”列表项');
container = sidebarItems[i].parentNode; // 获取列表项作为容器
break;
}
}
if (!container) {
console.log('未找到“最近更新”列表项');
return;
}
// 直接拼接完整API地址(不使用+=)
var apiParams = 'action=query&list=recentchanges&rcprop=title&rclimit=5&rcdaylimit=7&format=json';
var apiUrl = mw.util.wikiScript('api') + '?' + apiParams;
// 原生XMLHttpRequest(避免fetch可能的兼容问题)
var xhr = new XMLHttpRequest();
xhr.open('GET', apiUrl, true);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
try {
var data = JSON.parse(xhr.responseText);
if (data.query && data.query.recentchanges && data.query.recentchanges.length > 0) {
var list = document.createElement('ul');
list.style.listStyle = 'none';
list.style.paddingLeft = '10px';
for (var i = 0; i < data.query.recentchanges.length; i++) {
var rc = data.query.recentchanges[i];
var item = document.createElement('li');
var link = document.createElement('a');
link.href = mw.util.getUrl(rc.title);
link.textContent = rc.title;
item.appendChild(link);
list.appendChild(item);
}
container.innerHTML = '';
container.appendChild(list);
} else {
container.textContent = '暂无更新';
}
} catch (e) {
container.textContent = '解析失败';
console.error('JSON解析错误:', e);
}
} else {
container.textContent = '请求失败';
console.error('HTTP错误:', xhr.status);
}
}
};
xhr.send();
}
// 页面加载完成后执行
if (window.addEventListener) {
window.addEventListener('load', loadRecentChanges, false);
} else if (window.attachEvent) { // 兼容IE旧版本
window.attachEvent('onload', loadRecentChanges);
}