跳转到内容

MediaWiki:Common.js

来自洽隐山房
Apkqiu​(留言 | 贡献)2026年8月20日 (四) 06:42的版本

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

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
  • Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
  • Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5。
/* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */
(function(){
if(!window.SLOADED){
	window.SLOADED = {}
}
document.addEventListener('turbo:reload', () => console.log('🔥 页面完整刷新!'));
function patchStartupScript() {
    // 找到 startup.js 的脚本标签(通常是 load.php?modules=startup)
    const scripts = document.querySelectorAll('script[src*="load.php"][src*="modules=startup"]');
    scripts.forEach(script => {
        script.dataset.turboTrack = 'reload';
        console.log(script.outerHTML);
    });
}
document.addEventListener('turbo:load', () => {
    // 再次执行补丁,确保新页面导航后也能跟踪
    patchStartupScript();
});
document.addEventListener('turbo:before-render', (event) => {
    // 获取即将被渲染的新文档
    const newDocument = event.detail.newBody.ownerDocument;
    
    // 在新文档的 head 中查找 startup 脚本
    const startupScript = newDocument.querySelector('script[src*="load.php"][src*="modules=startup"]');
    
    if (startupScript) {
        // 从新文档中移除该脚本,避免 Turbo 检测到变化
        startupScript.remove();
        console.log('移除新页面中的 startup.js');
    }
});
function loadScript(url, options={}, dataset={}) {
    return new Promise((resolve, reject) => {
    	if(window.SLOADED[url]) resolve()
        const script = document.createElement('script');
        script.src = url;
        script.async = "async";
        Object.assign(script, options);
        Object.assign(script.dataset, dataset);
        script.onload = () => {window.SLOADED[url] = true ;resolve()};
		script.onerror = (e) => reject(e)
        document.head.appendChild(script);
    });
}
patchStartupScript();

loadScript("https://cdnjs.cloudflare.com/ajax/libs/parallax/3.1.0/parallax.min.js").then(function(){
	var scene = document.createElement("div");
	document.body.appendChild(scene);
	scene.style.zIndex = -100;
	scene.style.position = "fixed";
	scene.id = "parallax-bg";
	scene.style.inset = "-300px";
	var img = document.createElement("img");
	scene.appendChild(img);
	img.src = "/_nuxt/bg-1.DbZGBWF5.jpg";
	img.dataset.depth = 0.5;
	new Parallax(scene);
});
	
loadScript("https://cdn.jsdelivr.net/npm/@hotwired/turbo@latest/dist/turbo.es2017-esm.min.js", 
	{
		type: "module"
	}
);

})()