Update document-cloner.ts

This commit is contained in:
Jun 2023-01-12 09:47:12 -08:00 committed by GitHub
parent 90ef576ad9
commit 983edf6db2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -24,7 +24,6 @@ import {CSSParsedCounterDeclaration, CSSParsedPseudoDeclaration} from '../css/in
import {getQuote} from '../css/property-descriptors/quotes';
import {Context} from '../core/context';
import {DebuggerType, isDebugging} from '../core/debugger';
import {serializeDoctype} from './serialize-doctype';
export interface CloneOptions {
ignoreElements?: (element: Element) => boolean;
@ -131,10 +130,14 @@ export class DocumentCloner {
});
documentClone.open();
documentClone.write(serializeDoctype(document.doctype) as unknown as string);
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;