diff --git a/frontend/app/player/MessageDistributor/managers/DOMManager.ts b/frontend/app/player/MessageDistributor/managers/DOMManager.ts index e42041f91..c4a4b5ab0 100644 --- a/frontend/app/player/MessageDistributor/managers/DOMManager.ts +++ b/frontend/app/player/MessageDistributor/managers/DOMManager.ts @@ -120,16 +120,18 @@ export default class DOMManager extends ListWalker { private applyMessage = (msg: Message): void => { let node; + let doc: Document | null; switch (msg.tp) { case "create_document": - // @ts-ignore ?? - this.screen.document.open(); - // @ts-ignore ?? - this.screen.document.write(`${ msg.doctype || "" }`); - // @ts-ignore ?? - this.screen.document.close(); - // @ts-ignore ?? - const fRoot = this.screen.document.documentElement; + doc = this.screen.document; + if (!doc) { + logger.error("No iframe document found", msg) + return; + } + doc.open(); + doc.write(""); + doc.close(); + const fRoot = doc.documentElement; fRoot.innerText = ''; this.nl = [ fRoot ]; @@ -213,7 +215,7 @@ export default class DOMManager extends ListWalker { // @ts-ignore node.data = msg.data; if (node instanceof HTMLStyleElement) { - const doc = this.screen.document + doc = this.screen.document doc && rewriteNodeStyleSheet(doc, node) } break; @@ -255,7 +257,7 @@ export default class DOMManager extends ListWalker { } // await new Promise(resolve => { node.onload = resolve }) - const doc = node.contentDocument; + doc = node.contentDocument; if (!doc) { logger.warn("No iframe doc", msg, node, node.contentDocument); return;