html2canvas cloneNode issue
To demonstrate the issue.
HTML
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<div id="container">
<script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
<!-- This element's contents will be replaced with your component. -->
</div>
Babel + JSX
class Hello extends React.Component {
saveToPngWorks = () => {
const tag = document.getElementById('captureMe');
const p = html2canvas(tag);
p.then(canvas => {
const url = canvas.toDataURL("image/png");
const link = document.createElement("a");
link.href = url;
link.download = "test.png"
link.click(link);
})
}
saveToPngError = () => {
const tag = document.getElementById('captureMe');
// FIXME: Error here!!
const clone = tag.cloneNode(true);
const p = html2canvas(clone);
p.then(canvas => {
const url = canvas.toDataURL("image/png");
const link = document.createElement("a");
link.href = url;
link.download = "test.png"
link.click(link);
})
}
render() {
return <div id='captureMe'>
Hello {this.props.name}
<button onClick={this.saveToPngWorks}>Save</button>
<button onClick={this.saveToPngError}>Save Error</button>
</div>;
}
}
ReactDOM.render(
<Hello name="World" />,
document.getElementById('container')
);