diff --git a/components/file-group-page.js b/components/file-group-page.js index dab9dcf..d252d2f 100644 --- a/components/file-group-page.js +++ b/components/file-group-page.js @@ -57,6 +57,8 @@ export class FileGroupPage extends HTMLElement { super() this.attachShadow({mode: 'open'}) this.csp = "default-src 'self' 'unsafe-inline' 'unsafe-eval'" + this.viewLoaded = false + this.onceOnLoaded = undefined } connectedCallback() { @@ -136,7 +138,11 @@ export class FileGroupPage extends HTMLElement { frame.srcdoc = frameHtml } frame.addEventListener('load', () => { - this.displayView() + this.viewLoaded = true + if (this.onceOnLoaded) { + this.onceOnLoaded() + this.onceOnLoaded = undefined + } }) this.viewFrame = frame this.shadowRoot.append(frame) @@ -144,9 +150,17 @@ export class FileGroupPage extends HTMLElement { displayView(doc) { const msg = ['srcdoc', doc] - this.viewFrame.contentWindow.postMessage( - msg, '*' - ) + if (this.viewLoaded) { + this.viewFrame.contentWindow.postMessage( + msg, '*' + ) + } else { + this.onceOnLoaded = () => { + this.viewFrame.contentWindow.postMessage( + msg, '*' + ) + } + } } async displayEdit() { diff --git a/sw.js b/sw.js index 30bf1fc..15ff0a6 100644 --- a/sw.js +++ b/sw.js @@ -17,7 +17,7 @@ async function initCache() { '/loader/builder.js', '/loader/editor-build.js', '/menu/dropdown.js', - ]) //1 + ]) //2 } self.addEventListener("install", event => { @@ -53,4 +53,4 @@ self.addEventListener('fetch', event => { self.addEventListener('activate', event => { event.waitUntil(clients.claim()) -}) +}) \ No newline at end of file