From c1a31a8fa6612e74f52e8880195f791cedf2d839 Mon Sep 17 00:00:00 2001 From: Ivy HE Date: Mon, 17 Apr 2023 12:19:47 -0700 Subject: [PATCH] Updated to include fix for trusted types comply --- src/dom/document-cloner.ts | 33 +++++---------------------------- 1 file changed, 5 insertions(+), 28 deletions(-) diff --git a/src/dom/document-cloner.ts b/src/dom/document-cloner.ts index 08faa29..1d5b8b2 100644 --- a/src/dom/document-cloner.ts +++ b/src/dom/document-cloner.ts @@ -130,10 +130,13 @@ export class DocumentCloner { }); documentClone.open(); - documentClone.write(`${serializeDoctype(document.doctype)}`); + if (document.doctype && document.doctype.nodeType === Node.DOCUMENT_TYPE_NODE) { + const doctypeClone = document.doctype.cloneNode(false); + documentClone.append(doctypeClone); + } // Chrome scrolls the parent document for some reason after the write to the cloned window??? restoreOwnerScroll(this.referenceElement.ownerDocument, scrollX, scrollY); - documentClone.replaceChild(documentClone.adoptNode(this.documentElement), documentClone.documentElement); + documentClone.append(documentClone.adoptNode(this.documentElement)); documentClone.close(); return iframeLoad; @@ -568,32 +571,6 @@ export const copyCSSStyles = (style: CSSStyl return target; }; -const serializeDoctype = (doctype?: DocumentType | null): string => { - let str = ''; - if (doctype) { - str += ''; - } - - return str; -}; - const restoreOwnerScroll = (ownerDocument: Document | null, x: number, y: number) => { if ( ownerDocument &&