mirror of
https://github.com/niklasvh/html2canvas.git
synced 2023-08-10 21:13:10 +03:00
* fix: #1868 Clone node, Setting className for SVG element raises error * fix: svg element type information
This commit is contained in:
committed by
GitHub
parent
e4d52a1ac6
commit
f139b513c5
@@ -8,6 +8,7 @@ import {
|
||||
isScriptElement,
|
||||
isSelectElement,
|
||||
isStyleElement,
|
||||
isSVGElementNode,
|
||||
isTextareaElement,
|
||||
isTextNode
|
||||
} from './node-parser';
|
||||
@@ -409,10 +410,17 @@ export class DocumentCloner {
|
||||
});
|
||||
|
||||
anonymousReplacedElement.className = `${PSEUDO_HIDE_ELEMENT_CLASS_BEFORE} ${PSEUDO_HIDE_ELEMENT_CLASS_AFTER}`;
|
||||
clone.className +=
|
||||
const newClassName =
|
||||
pseudoElt === PseudoElementType.BEFORE
|
||||
? ` ${PSEUDO_HIDE_ELEMENT_CLASS_BEFORE}`
|
||||
: ` ${PSEUDO_HIDE_ELEMENT_CLASS_AFTER}`;
|
||||
|
||||
if (isSVGElementNode(clone)) {
|
||||
clone.className.baseValue += newClassName;
|
||||
} else {
|
||||
clone.className += newClassName;
|
||||
}
|
||||
|
||||
return anonymousReplacedElement;
|
||||
}
|
||||
|
||||
|
||||
@@ -103,7 +103,8 @@ export const isTextNode = (node: Node): node is Text => node.nodeType === Node.T
|
||||
export const isElementNode = (node: Node): node is Element => node.nodeType === Node.ELEMENT_NODE;
|
||||
export const isHTMLElementNode = (node: Node): node is HTMLElement =>
|
||||
typeof (node as HTMLElement).style !== 'undefined';
|
||||
|
||||
export const isSVGElementNode = (element: Element): element is SVGElement =>
|
||||
typeof (element as SVGElement).className === 'object';
|
||||
export const isLIElement = (node: Element): node is HTMLLIElement => node.tagName === 'LI';
|
||||
export const isOLElement = (node: Element): node is HTMLOListElement => node.tagName === 'OL';
|
||||
export const isInputElement = (node: Element): node is HTMLInputElement => node.tagName === 'INPUT';
|
||||
|
||||
Reference in New Issue
Block a user