const loading = document.getElementById("loading") loading.textContent = "Loading, please wait..." const progress = document.getElementById("progress") let wikiPage = null function wikiPageCallback(data) { wikiPage = data cont() } let siteinfo = null function siteinfoCallback(data) { siteinfo = data cont() } async function cont() { if (!(wikiPage && siteinfo)) return const xhr = new XMLHttpRequest(); const uploadFraction = 0.7 // Upload progress xhr.upload.addEventListener("progress", event => { if (event.lengthComputable) { progress.value = (event.loaded / event.total) * uploadFraction } }) // Download progress xhr.addEventListener("progress", event => { if (event.lengthComputable) { progress.value = (event.loaded / event.total) * (1 - uploadFraction) + uploadFraction } }) xhr.addEventListener("load", () => { console.log(xhr) const imported = document.importNode(xhr.responseXML.getElementById("content"), true) document.getElementById("content").replaceWith(imported) document.title = xhr.responseXML.title for (const e of xhr.responseXML.head.children) { if (["LINK"].includes(e.tagName)) { const imported = document.importNode(e, true) document.head.appendChild(imported) } } }) xhr.open("POST", "/api/render/wiki") xhr.responseType = "document" xhr.send(JSON.stringify({ data: wikiPage, siteinfo, wikiname, path })); }