diff --git a/src/app/tab3/tab3.page.ts b/src/app/tab3/tab3.page.ts index 4307147..1320a2b 100644 --- a/src/app/tab3/tab3.page.ts +++ b/src/app/tab3/tab3.page.ts @@ -9,6 +9,7 @@ export class Tab3Page implements OnInit { text: string; editorOptions = { theme: 'vs-dark', language: 'javascript' }; code = ''; + sandboxFrame: HTMLIFrameElement; constructor() { @@ -235,20 +236,21 @@ export class Tab3Page implements OnInit { fetch('assets/sandbox/script.js').then(async (res) => { this.code = await res.text(); }); - } - parseExample() { - const worker = new Worker('assets/sandbox/sandbox.js'); - worker.postMessage({script: this.code, camtData: this.stringToParse}); - worker.onmessage = ((ev: MessageEvent) => { - this.text = ev.data; + this.sandboxFrame = document.createElement('iframe'); + this.sandboxFrame.sandbox.add('allow-scripts'); + this.sandboxFrame.src = 'assets/sandbox/sandbox.html'; + + window.addEventListener('message', (e) => { + console.debug(e); + this.text = e.data; }); - setTimeout(async () => { - worker.terminate(); - // tslint:disable-next-line: no-console - console.info('Worker terminated'); - }, 5000); + document.body.appendChild(this.sandboxFrame); + } + + parseExample() { + this.sandboxFrame.contentWindow.postMessage({ script: this.code, camtData: this.stringToParse }, '*'); } } diff --git a/src/assets/sandbox/sandbox.html b/src/assets/sandbox/sandbox.html new file mode 100644 index 0000000..b78d781 --- /dev/null +++ b/src/assets/sandbox/sandbox.html @@ -0,0 +1,16 @@ + \ No newline at end of file