fix(sdk,client): initialize crossframe observers after window load event
All checks were successful
arcad/edge/pipeline/head This commit looks good

This commit is contained in:
2023-04-06 19:18:36 +02:00
parent 55d7241d95
commit da73b842e1
3 changed files with 30 additions and 15 deletions

View File

@ -17,11 +17,10 @@ export class CrossFrameMessenger extends EventTarget {
super()
this.debug = false;
this._initResizeObserver();
this._initTitleMutationObserver();
this._handleWindowMessage = this._handleWindowMessage.bind(this);
this._initObservers = this._initObservers.bind(this);
window.addEventListener('load', this._initObservers);
window.addEventListener('message', this._handleWindowMessage)
}
@ -46,6 +45,11 @@ export class CrossFrameMessenger extends EventTarget {
this.dispatchEvent(event);
}
_initObservers() {
this._initResizeObserver();
this._initTitleMutationObserver();
}
_initTitleMutationObserver() {
const titleObserver = new MutationObserver((mutations) => {
const title = mutations[0].target.textContent;
@ -75,6 +79,10 @@ export class CrossFrameMessenger extends EventTarget {
this.post({ type: CrossFrameMessageType.SIZE_CHANGED, data: { height, width }});
});
resizeObserver.observe(document.body);
const body = document.body;
if (!body) return;
resizeObserver.observe(body);
}
}