[英]html2canvas error if I download printscreen second time
I implemented html2canvas for downloading printscreen by clicking on button.我通过单击按钮实现了 html2canvas 来下载打印屏幕。 If I click first time everything is ok but after second time I got a following error:
如果我第一次点击一切正常,但第二次点击后出现以下错误:
Uncaught TypeError: Cannot set property 'id' of null
at HTMLButtonElement.capture
at在
body.id = 'capture';
so body is null I don't understand why.所以 body 是 null 我不明白为什么。 Maybe some browser restrictions?
也许一些浏览器限制?
Demo https://jsfiddle.net/janzitniak/bn4Lrcy3/9/演示https://jsfiddle.net/janzitniak/bn4Lrcy3/9/
I found a workaround for that (using index for added canvas), getting right code:我找到了一个解决方法(使用索引添加画布),获得正确的代码:
var index = -1;
var body = document.querySelector('#example1');
var capture = () => {
body.id = 'capture';
html2canvas(document.querySelector("#capture")).then(canvas => {
document.body.appendChild(canvas);
}).then(() => {
var canvas = document.querySelectorAll('canvas')[index];
canvas.style.display = 'none';
var image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
var a = document.createElement("a");
a.setAttribute('download', 'excelo.online-output.png');
a.setAttribute('href', image);
a.click();
});
index++;
};
var btn = document.getElementById('btnPrintScreen');
btn.addEventListener('click', capture)
demo is available at https://jsfiddle.net/janzitniak/bn4Lrcy3/46/演示可在https://jsfiddle.net/janzitniak/bn4Lrcy3/46/ 获得
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.