跳转到内容

MediaWiki:Common.js:修订间差异

来自洽隐山房
无编辑摘要
页面内容被替换为“(function () { if (!window.SLOADED) { window.SLOADED = {}; window.RELOAD = true; } else { window.RELOAD = false; } 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(…”
标签:替换
 
(未显示同一用户的41个中间版本)
第1行: 第1行:
(function () {
(function () {
     if (window.SLOADED) {
     if (!window.SLOADED) {
         window.SLOADED = {};
         window.SLOADED = {};
         window.RELOAD = true;
         window.RELOAD = true;
第6行: 第6行:
         window.RELOAD = false;
         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 hack_mw(mw) {
        var registry = mw.loader.moduleRegistry;
        mw.loader.registerOne = function (
            module,
            version,
            dependencies,
            group,
            source,
            skip
        ) {
            registry[module] = {
                // Exposed to execute() for mw.loader.impl() closures.
                // Import happens via require().
                module: {
                    exports: {},
                },
                // module.export objects for each package file inside this module
                packageExports: {},
                version: version || "",
                dependencies: dependencies || [],
                group: typeof group === "undefined" ? null : group,
                source: typeof source === "string" ? source : "local",
                state: "registered",
                skip: typeof skip === "string" ? skip : null,
            };
        };
        function splitModuleKey(key) {
            var index = key.lastIndexOf('@');
            if (index === -1 || index === 0) {
                return {
                    name: key,
                    version: ''
                };
            }
            return {
                name: key.slice(0, index),
                version: key.slice(index + 1)
            };
        }
        function setAndPropagate(module, state) {
            registry[module].state = state;
            if (state === 'ready') {
                store.add(module);
            } else if (state === 'error' || state === 'missing') {
                errorModules.push(module);
            } else if (state !== 'loaded') {
                return;
            }
            if (willPropagate) {
                return;
            }
            willPropagate = true;
            mw.requestIdleCallback(doPropagation, {
                timeout: 1
            });
        }
        mw.loader.impl = function (declarator) {
            var data = declarator(),
                module = data[0],
                script = data[1] || null,
                style = data[2] || null,
                messages = data[3] || null,
                templates = data[4] || null,
                deprecationWarning = data[5] || null,
                split = splitModuleKey(module),
                name = split.name,
                version = split.version;
 
            // Automatically register module
            if (!(name in registry)) {
                mw.loader.register(name);
            }
            // Without this reset, if there is a version mismatch between the
            // requested and received module version, then mw.loader.store would
            // cache the response under the requested key. Thus poisoning the cache
            // indefinitely with a stale value. (T117587)
            registry[name].version = version;
            // Attach components
            registry[name].declarator = declarator;
            registry[name].script = script;
            registry[name].style = style;
            registry[name].messages = messages;
            registry[name].templates = templates;
            registry[name].deprecationWarning = deprecationWarning;
            // The module may already have been marked as erroneous
            if (
                registry[name].state !== "error" &&
                registry[name].state !== "missing"
            ) {
                setAndPropagate(name, "loaded");
            }
        };
        mw.loader.implement = function (
            module,
            script,
            style,
            messages,
            templates,
            deprecationWarning
        ) {
            var split = splitModuleKey(module),
                name = split.name,
                version = split.version;
 
            // Automatically register module
            if (!(name in registry)) {
                mw.loader.register(name);
            }
            registry[name].version = version;
            registry[name].declarator = null; // not supported
            registry[name].script = script;
            registry[name].style = style;
            registry[name].messages = messages;
            registry[name].templates = templates;
            registry[name].deprecationWarning = deprecationWarning;
            // The module may already have been marked as erroneous
            if (
                registry[name].state !== "error" &&
                registry[name].state !== "missing"
            ) {
                setAndPropagate(name, "loaded");
            }
        };
        document.querySelector(
            'script[async][src*="startup"]',
        ).dataset.turbo_temporary = "turbo_twmporary";
    }
    // library functions
     function loadScript(url, options = {}, dataset = {}) {
     function loadScript(url, options = {}, dataset = {}) {
         return new Promise((resolve, reject) => {
         return new Promise((resolve, reject) => {
第166行: 第23行:
         });
         });
     }
     }
    hack_mw(mw);
     loadScript("/site/mediawiki-lib.js")
     loadScript(
        "https://cdnjs.cloudflare.com/ajax/libs/parallax/3.1.0/parallax.min.js",
    ).then(function () {
        inject_parallax(document);
        new Parallax(scene);
    });
    loadScript(
        "https://cdn.jsdelivr.net/npm/@hotwired/turbo@latest/dist/turbo.es2017-esm.min.js",
        { type: "module" },
    );
})();
})();

2026年8月25日 (二) 08:25的最新版本

(function () {
    if (!window.SLOADED) {
        window.SLOADED = {};
        window.RELOAD = true;
    } else {
        window.RELOAD = false;
    }
   
    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("/site/mediawiki-lib.js")
})();