From 95ea260647aa2347a578c986d9718fe857ac2c69 Mon Sep 17 00:00:00 2001 From: Angelina Nguyen Date: Thu, 8 Feb 2024 19:28:44 +1100 Subject: [PATCH] see pr: https://github.com/niklasvh/html2canvas/pull/2846 --- 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 08faa298d..1d5b8b247 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 &&