微件: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>