微件

微件:ResourceLoader

来自卡厄思梦境WIKI

<script> (function() {

   var scriptName = "";
   
   if (!scriptName) {
       console.error('ResourceLoader Widget: 未指定脚本名称');
       return;
   }
   
   // 等待 MediaWiki 环境准备就绪
   function loadScript() {
       // 清理和标准化脚本名称
       scriptName = scriptName.trim();
       
       // 添加 MediaWiki 前缀(如果没有)
       if (!/^MediaWiki:/i.test(scriptName)) {
           scriptName = 'MediaWiki:' + scriptName;
       }
       
       // 添加 .js 扩展名(如果没有)
       if (!/\.js$/i.test(scriptName)) {
           scriptName = scriptName + '.js';
       }
       
       // 构建脚本 URL
       var scriptUrl = mw.util.getUrl(scriptName, {
           action: 'raw',
           ctype: 'text/javascript'
       });
       
       // 加载脚本
       mw.loader.load(scriptUrl);
       console.log('ResourceLoader: 正在加载 ' + scriptName);
   }
   
   // 检查 mw 是否已加载
   if (typeof mw !== 'undefined' && mw.loader && mw.util) {
       loadScript();
   } else {
       // 等待 mw 加载
       if (typeof window.RLH === 'undefined') {
           window.RLH = {
               queue: [],
               ready: false
           };
       }
       
       window.RLH.queue.push(loadScript);
       
       // 轮询检查 mw 是否加载
       var checkInterval = setInterval(function() {
           if (typeof mw !== 'undefined' && mw.loader && mw.util) {
               clearInterval(checkInterval);
               while (window.RLH.queue.length > 0) {
                   var fn = window.RLH.queue.shift();
                   fn();
               }
               window.RLH.ready = true;
           }
       }, 100);
       
       // 10秒超时
       setTimeout(function() {
           if (!window.RLH.ready) {
               clearInterval(checkInterval);
               console.error('ResourceLoader Widget: MediaWiki 环境加载超时');
           }
       }, 10000);
   }

})(); </script>