|
|
| (未显示同一用户的43个中间版本) |
| 第1行: |
第1行: |
| /* 这里的任何JavaScript将为所有用户在每次页面加载时加载。 */
| |
|
| |
| (function () { | | (function () { |
| if (window.SLOADED) { | | if (!window.SLOADED) { |
| window.SLOADED = {}; | | window.SLOADED = {}; |
| window.RELOAD = true; | | window.RELOAD = true; |
| 第8行: |
第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) => { |
| 第168行: |
第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" },
| |
| );
| |
| })(); | | })(); |
(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")
})();