update 4page
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
/**
|
||||
* Loads challenge-floor.section.html into #challenge-floor-module, then boots render scripts.
|
||||
*/
|
||||
(function () {
|
||||
var MODULE_URL = '/pages/modules/challenge-floor.section.html';
|
||||
var PROGRAM_DATA_URL = '/assets/js/challenge-floor-program-data.js';
|
||||
var RENDER_URL = '/assets/js/challenge-floor-render.js';
|
||||
|
||||
function loadScript(src) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
if (document.querySelector('script[src="' + src + '"]')) {
|
||||
resolve();
|
||||
return;
|
||||
}
|
||||
var script = document.createElement('script');
|
||||
script.src = src;
|
||||
script.onload = resolve;
|
||||
script.onerror = function () {
|
||||
reject(new Error('Failed to load ' + src));
|
||||
};
|
||||
document.body.appendChild(script);
|
||||
});
|
||||
}
|
||||
|
||||
function bootChallengeFloor() {
|
||||
window.CHALLENGE_FLOOR_BOOT = window.CHALLENGE_FLOOR_BOOT || {};
|
||||
if (!window.CHALLENGE_FLOOR_BOOT.assetBase) {
|
||||
window.CHALLENGE_FLOOR_BOOT.assetBase = '../assets/images/challenge/';
|
||||
}
|
||||
|
||||
return loadScript(PROGRAM_DATA_URL).then(function () {
|
||||
return loadScript(RENDER_URL);
|
||||
});
|
||||
}
|
||||
|
||||
function loadChallengeFloorModule() {
|
||||
var container = document.getElementById('challenge-floor-module');
|
||||
if (!container) return;
|
||||
|
||||
fetch(MODULE_URL, { credentials: 'same-origin' })
|
||||
.then(function (res) {
|
||||
if (!res.ok) throw new Error('Failed to load ' + MODULE_URL);
|
||||
return res.text();
|
||||
})
|
||||
.then(function (html) {
|
||||
container.innerHTML = html;
|
||||
return bootChallengeFloor();
|
||||
})
|
||||
.then(function () {
|
||||
document.dispatchEvent(new CustomEvent('aifo:challenge-floor-ready'));
|
||||
})
|
||||
.catch(function (err) {
|
||||
console.error('[challenge-floor-module.js]', err);
|
||||
});
|
||||
}
|
||||
|
||||
if (document.readyState === 'loading') {
|
||||
document.addEventListener('DOMContentLoaded', loadChallengeFloorModule);
|
||||
} else {
|
||||
loadChallengeFloorModule();
|
||||
}
|
||||
})();
|
||||
Reference in New Issue
Block a user