Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Disable virtual parent optimization on <head> #827

Closed
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions packages/rrweb/src/replay/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1401,7 +1401,11 @@ export class Replayer {
/**
* Why !isIframeINode(parent)? If parent element is an iframe, iframe document can't be appended to virtual parent.
* Why !hasIframeChild? If we move iframe elements from dom to fragment document, we will lose the contentDocument of iframe. So we need to disable the virtual dom optimization if a parent node contains iframe elements.
* Why parent.tagName !== 'HEAD'? moving stylesheets out of the <head> element removes the styles from the document (and they don't get replaced at `parent = virtualParent`
*/
if (((parent as unknown) as HTMLElement).tagName === 'HEAD') {
useVirtualParent = false; // cancel for this and any other additions in same mutation
}
if (
useVirtualParent &&
parentInDocument &&
Expand Down