1
0
Files
ag-index/assets/js/map3d-loader.js
2026-04-20 16:06:22 +08:00

54 lines
1.6 KiB
JavaScript

(function () {
"use strict";
var loaderScript = document.currentScript;
function supportsModuleScripts() {
var script = document.createElement("script");
return "noModule" in script;
}
function supportsImportMaps() {
return !!(window.HTMLScriptElement && HTMLScriptElement.supports && HTMLScriptElement.supports("importmap"));
}
function supportsWebGL() {
try {
var canvas = document.createElement("canvas");
return !!(window.WebGLRenderingContext && (canvas.getContext("webgl") || canvas.getContext("experimental-webgl")));
} catch (err) {
return false;
}
}
function bootstrapMapModule() {
var map = document.getElementById("map");
var script;
if (!map || map.getAttribute("data-map-module-loaded") === "true") {
return;
}
if (!supportsModuleScripts() || !supportsImportMaps() || !supportsWebGL() || typeof Promise === "undefined" || typeof fetch === "undefined") {
return;
}
map.setAttribute("data-map-module-loaded", "true");
script = document.createElement("script");
script.type = "module";
script.src = loaderScript ? new URL("map3d.js", loaderScript.src).toString() : "assets/js/map3d.js";
script.onerror = function () {
map.removeAttribute("data-map-module-loaded");
};
document.body.appendChild(script);
}
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", bootstrapMapModule);
} else {
bootstrapMapModule();
}
}());