MediaWiki:Common.js

来自RMzas&SMS_Knowledge_Base_Wiki
ML4455739讨论 | 贡献2025年10月8日 (三) 17:08:09的版本 (导入1个版本)
跳转到导航 跳转到搜索

注意:在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:前往菜单 → 设置(Mac为Opera → Preferences),然后隐私和安全 → 清除浏览数据 → 缓存的图片和文件
/* 这里的任何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);
}