MediaWiki:Node.js
来自东方Project线下活动维基
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
- Opera:按 Ctrl-F5。
// 动态加载 JavaScript(使用回调)
function loadScript(url, callback) {
var script = document.createElement('script');
script.src = url;
script.onload = function () {
console.log('加载完成: ' + url);
if (callback) callback();
};
script.onerror = function () {
console.error('加载失败: ' + url);
};
document.head.appendChild(script);
}
// 动态加载 CSS
function loadCSS(url) {
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = url;
document.head.appendChild(link);
}
function loadDependencies() {
var urlObj = new URL(window.location.href);
var title = urlObj.searchParams.get("title");
var action = urlObj.searchParams.get("action");
var isEditingJS = title && title.indexOf(".js") === title.length - 3 && action === "edit";
var isEditingCSS = title && title.indexOf(".css") === title.length - 4 && action === "edit";
console.log('NodeJS 模块加载中...');
if (isEditingJS || isEditingCSS) {
loadScript('/node_modules/vue/dist/vue.js', function () {
console.log('所有资源加载完毕 🎉');
loaded = true;
});
} else {
// loadScript('/node_modules/oojs/dist/oojs.min.js', function () {
// loadScript('/node_modules/oojs-ui/dist/oojs-ui.min.js', function () {
// // loadCSS('/node_modules/oojs-ui/dist/oojs-ui-wikimediaui.min.css');
// loadScript('/node_modules/oojs-ui/dist/oojs-ui-wikimediaui.min.js', function () {
// loadScript('/node_modules/vue/dist/vue.js', function () {
// console.log('所有资源加载完毕 🎉');
// loaded = true;
// });
// });
// });
// });
loadScript('/node_modules/vue/dist/vue.js', function () {
console.log('所有资源加载完毕 🎉');
loaded = true;
});
}
}
// 确保在页面加载完成后执行
if (document.readyState === 'complete') {
loadDependencies();
} else {
window.addEventListener('load', loadDependencies);
}