“MediaWiki:Common.js”的版本间差异

来自RMzas&SMS_Knowledge_Base_Wiki
跳转到导航 跳转到搜索
(导入1个版本)
第2行: 第2行:
  
  
// 显示最近更新页面(无复杂运算符,纯基础语法)
+
// 极简测试:将侧边栏中的“最近更新:”改为“123”
function loadRecentChanges() {
+
document.addEventListener('DOMContentLoaded', function() {
   // 查找容器
+
   // 查找侧边栏中所有列表项文本
   var container = null;
+
   var sidebarItems = document.querySelectorAll('#mw-panel li'); // 侧边栏所有列表项
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];
+
  for (var i = 0; i < sidebarItems.length; i++) {
              var item = document.createElement('li');
+
    var itemText = sidebarItems[i].textContent.trim(); // 获取列表项的文本内容
              var link = document.createElement('a');
+
    if (itemText.includes('最近更新:')) { // 匹配目标文本
              link.href = mw.util.getUrl(rc.title);
+
      console.log('找到目标元素:', sidebarItems[i]); // 控制台提示找到元素
              link.textContent = rc.title;
+
       sidebarItems[i].textContent = '123'; // 替换文本为“123”
              item.appendChild(link);
+
      return; // 找到后退出循环
              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) {
+
   console.log('未找到包含“最近更新:”的元素');
   window.addEventListener('load', loadRecentChanges, false);
+
});
} else if (window.attachEvent) { // 兼容IE旧版本
 
  window.attachEvent('onload', loadRecentChanges);
 
}
 

2025年10月8日 (三) 18:01:21的版本

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


// 极简测试:将侧边栏中的“最近更新:”改为“123”
document.addEventListener('DOMContentLoaded', function() {
  // 查找侧边栏中所有列表项文本
  var sidebarItems = document.querySelectorAll('#mw-panel li'); // 侧边栏所有列表项

  // 遍历列表项,寻找包含“最近更新:”的元素
  for (var i = 0; i < sidebarItems.length; i++) {
    var itemText = sidebarItems[i].textContent.trim(); // 获取列表项的文本内容
    if (itemText.includes('最近更新:')) { // 匹配目标文本
      console.log('找到目标元素:', sidebarItems[i]); // 控制台提示找到元素
      sidebarItems[i].textContent = '123'; // 替换文本为“123”
      return; // 找到后退出循环
    }
  }

  // 如果没找到,在控制台提示
  console.log('未找到包含“最近更新:”的元素');
});