diff --git a/packages/rrweb/src/record/iframe-manager.ts b/packages/rrweb/src/record/iframe-manager.ts index 628b5896e0..b4c14879af 100644 --- a/packages/rrweb/src/record/iframe-manager.ts +++ b/packages/rrweb/src/record/iframe-manager.ts @@ -50,6 +50,10 @@ export class IframeManager { } } + public setTakeFullSnapshot (takeFullSnapshot: (isCheckout?: boolean) => void) { + this.takeFullSnapshot = takeFullSnapshot; + } + public addIframe(iframeEl: HTMLIFrameElement) { this.iframes.set(iframeEl, true); if (iframeEl.contentWindow) diff --git a/packages/rrweb/src/record/index.ts b/packages/rrweb/src/record/index.ts index 00b43fd67e..dc696f3bc6 100644 --- a/packages/rrweb/src/record/index.ts +++ b/packages/rrweb/src/record/index.ts @@ -41,8 +41,7 @@ import { } from './error-handler'; let wrappedEmit!: (e: eventWithoutTime, isCheckout?: boolean) => void; - -let takeFullSnapshot!: (isCheckout?: boolean) => void; +let takeFullSnapshot: (isCheckout?: boolean) => void = () => { /* no-op */ }; let canvasManager!: CanvasManager; let recording = false; @@ -418,6 +417,7 @@ function record( mirror.getId(document), ); }; + iframeManager.setTakeFullSnapshot(takeFullSnapshot); try { const handlers: listenerHandler[] = [];