跳转到内容

MediaWiki:Common.js

来自洽隐山房
Apkqiu​(留言 | 贡献)2026年8月21日 (五) 05:58的版本

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

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
  • Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
  • Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5。
(function () {
    if (!window.SLOADED) {
        window.SLOADED = {};
        window.RELOAD = true;
    } else {
        window.RELOAD = false;
    }

    let scene;
    function inject_parallax(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;
    }
    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);
        });
    }
    let oldReg = [];
    document.addEventListener("turbo:before-visit", (event) => {
        var registry = mw.loader.moduleRegistry;
        for (var key in registry) {
            oldReg.push([key, registry[key].version, registry[key].dependencies, registry[key].group, registry[key].source, registry[key].skip]);
            delete registry[key];
        }
    });
    document.addEventListener("turbo:load", (event) => {
        console.log(mw.loader.moduleRegistry);
        oldReg.forEach((module) => {
            if (Object.keys(mw.loader.moduleRegistry).includes(module[0])) {
                delete mw.loader.moduleRegistry[module[0]];
            }
            mw.loader.register([module]);
        });
        console.log(window.RLCONF);
        mw.config.set(window.RLCONF || {});
        console.log(window.RLSTATE);
        mw.loader.state(window.RLSTATE || {});
        console.log(window.RLPAGEMODULES);
        mw.loader.load(window.RLPAGEMODULES || []);

        queue = window.RLQ || [];
        RLQ = [];
        RLQ.push = function (fn) {
            if (typeof fn === 'function') {
                fn();
            } else {
                RLQ[RLQ.length] = fn;
            }
        }
            ;
        while (queue[0]) {
            RLQ.push(queue.shift());
        }
        NORLQ = {
            push: function() {}
        };

        oldReg.length = 0;
    });

    inject_parallax(document);
    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" }
    );
})();