(function() { const UPLEVEL_STRING = "../"; const MAX_DEPTH = 10; const INITIAL_PREFIX = "./"; function walk(prefix) { if (prefix.length > (MAX_DEPTH * UPLEVEL_STRING.length) + INITIAL_PREFIX.length) { throw new Error("Unable to find pageloader.js!"); } window._rootPath = prefix; const script = document.createElement("script"); script.src = prefix + "pageloader.js"; script.onerror = function() { walk(prefix + UPLEVEL_STRING); } script.onload = function() { window._pageloaderLoaded = true; } if (window._loaded) { document.head.appendChild(script); } else { window.addEventListener("DOMContentLoaded", () => { window._loaded = true; document.head.appendChild(script); }); } } const requestedPath = document.currentScript.src; const fragmentIndex = requestedPath.indexOf("#"); if (fragmentIndex !== -1) { // We are being called in deferred script loader mode. if (!window._pageloaderLoaded) { // Deferred scripts encountered now should not run. return; } const fragment = requestedPath.replace(/[^#]*#/, ""); const script = document.createElement("script"); if (fragment[0] === "/") { // The script to be loaded has an absolute path script.src = window._rootPath + fragment.substring(1); } else { script.src = fragment; } document.head.appendChild(script); } else { // We are being called in pageloader-loader mode if (window._pageloaderLoaded) { return; } walk(INITIAL_PREFIX); } })();