MediaWiki:Common.js:修订间差异
外观
无编辑摘要 |
无编辑摘要 |
||
| 第4行: | 第4行: | ||
window.SLOADED = {} | window.SLOADED = {} | ||
} | } | ||
function | (function markStartupPermanent() { | ||
const scripts = document.querySelectorAll('script[src*="load.php"][src*="modules=startup"]'); | const scripts = document.querySelectorAll('script[src*="load.php"][src*="modules=startup"]'); | ||
if (scripts.length) { | |||
const script = scripts[0]; | |||
script.id = 'mw-startup-script'; // 唯一标识 | |||
script.dataset.turboPermanent = 'true'; // 永久保留 | |||
if (script.dataset.turboTrack) { | |||
delete script.dataset.turboTrack; // 移除可能存在的 track,避免比较 | |||
} | |||
console.log('[Turbo] 已标记 startup.js 为永久保留'); | |||
} | |||
})(); | |||
// ========== 2. 在每次渲染新页面之前,给新页面的 startup 也打上同样的标记 ========== | |||
document.addEventListener('turbo:before-render', (event) => { | |||
const newDocument = event.detail.newBody.ownerDocument; | |||
const scripts = newDocument.querySelectorAll('script[src*="load.php"][src*="modules=startup"]'); | |||
scripts.forEach(script => { | scripts.forEach(script => { | ||
script.id = 'mw-startup-script'; | |||
script.dataset.turboTrack | script.dataset.turboPermanent = 'true'; | ||
if (script.dataset.turboTrack) { | |||
delete script.dataset.turboTrack; | |||
} | } | ||
}); | }); | ||
}); | }); | ||
function loadScript(url, options={}, dataset={}) { | function loadScript(url, options={}, dataset={}) { | ||
2026年8月20日 (四) 06:48的版本
/* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */
(function(){
if(!window.SLOADED){
window.SLOADED = {}
}
(function markStartupPermanent() {
const scripts = document.querySelectorAll('script[src*="load.php"][src*="modules=startup"]');
if (scripts.length) {
const script = scripts[0];
script.id = 'mw-startup-script'; // 唯一标识
script.dataset.turboPermanent = 'true'; // 永久保留
if (script.dataset.turboTrack) {
delete script.dataset.turboTrack; // 移除可能存在的 track,避免比较
}
console.log('[Turbo] 已标记 startup.js 为永久保留');
}
})();
// ========== 2. 在每次渲染新页面之前,给新页面的 startup 也打上同样的标记 ==========
document.addEventListener('turbo:before-render', (event) => {
const newDocument = event.detail.newBody.ownerDocument;
const scripts = newDocument.querySelectorAll('script[src*="load.php"][src*="modules=startup"]');
scripts.forEach(script => {
script.id = 'mw-startup-script';
script.dataset.turboPermanent = 'true';
if (script.dataset.turboTrack) {
delete script.dataset.turboTrack;
}
});
});
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);
});
}
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"
}
);
})()