MediaWiki:Common.js
外观
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。
- 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 = {}
window.RELOAD = true;
}else{
window.RELOAD = false;
}
let scene;
function hook(document){
scene = document.createElement("div");
document.body.appendChild(scene);
scene.id = "scene";
scene.dataset.turboPermanent="true";
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;
}
hook(document);
// ========== 2. 在 Turbo 渲染新页面之前,删除新页面中的 startup 脚本 ==========
document.addEventListener('turbo:before-render', (event) => {
window.mw = null;
hook(event.detail.newBody.ownerDocument);
});
document.addEventListener('turbo:load', (event) => {
const scripts = document.querySelectorAll('script[src*="load.php"][src*="modules=startup"]');
scripts.forEach(script => {
loadScript(script.src);
});
});
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(){
new Parallax(scene);
});
loadScript("https://cdn.jsdelivr.net/npm/@hotwired/turbo@latest/dist/turbo.es2017-esm.min.js",
{
type: "module"
}
);
})()