diff --git a/src/sdk/MessageBus.ts b/src/sdk/MessageBus.ts index b75165d3..6684a062 100644 --- a/src/sdk/MessageBus.ts +++ b/src/sdk/MessageBus.ts @@ -759,17 +759,15 @@ export default class MessageBus { } private sendMessage(message: any): void { - const targetOrigin = IframeReference.getTargetOrigin(); - if (!targetOrigin) { - console.error('[MessageBus] sendMessage: targetOrigin not found'); - return; - } - const iframe = IframeReference.getIframe(); - if (!iframe) { - console.error('[MessageBus] sendMessage: iframe not found'); - return; - } - iframe.contentWindow?.postMessage(message, targetOrigin); + this.isReady().then(() => { + try { + const targetOrigin = IframeReference.getTargetOrigin(); + const iframe = IframeReference.getIframe(); + iframe.contentWindow?.postMessage(message, targetOrigin); + } catch (error) { + console.error('[MessageBus] sendMessage: error', error); + } + }).catch(console.error); } private handleMessage(event: MessageEvent): void { @@ -777,30 +775,25 @@ export default class MessageBus { return; } - const iframe = IframeReference.getIframe(); - if (!iframe) { - console.error('[MessageBus] handleMessage: iframe not found'); - return; - } + try { + const iframe = IframeReference.getIframe(); - if (event.source !== iframe.contentWindow) { - console.error('[MessageBus] handleMessage: source not match'); - return; - } + if (event.source !== iframe.contentWindow) { + console.error('[MessageBus] handleMessage: source not match'); + return; + } - const targetOrigin = IframeReference.getTargetOrigin(); - if (!targetOrigin) { - console.error('[MessageBus] handleMessage: targetOrigin not found'); - return; - } + const targetOrigin = IframeReference.getTargetOrigin(); - if (event.origin !== targetOrigin) { - console.error('[MessageBus] handleMessage: origin not match'); - return; - } + if (event.origin !== targetOrigin) { + throw new Error('origin not match'); + } - if (!event.data || typeof event.data !== 'object') { - console.error('[MessageBus] handleMessage: data not found'); + if (!event.data || typeof event.data !== 'object') { + throw new Error('data not found'); + } + } catch (error) { + console.error('[MessageBus] handleMessage:', error); return; }