Javascript保存网页为图片借助于html2canvas库实现

时间:2022-09-21 17:37:23

第一步,把网页保存为Canvas画布,借助于html2canvas库,http://html2canvas.hertzen.com/

?
1
2
3
4
5
6
html2canvas(document.getElementById("id1"), {
onrendered: function(canvas) {
document.getElementById("id2").appendChild(canvas);//生成画布后如何处理,当然可以在新标签打开,在浮层展示等等
},
canvas_id: 'canvas'//通过修改html2canvas源码添加canvas的id
});

Note:html2canvas()第一个参数为要生成canvas的区域,如果整个网页生成canvas,则是document.body。第二个参数详见官网设置canvas的各种属性,当然修改源代码可以添加自己想要的属性,如给canvas添加id等。

第二步,把第一步中生成的canvas保存成图片

?
1
2
3
4
5
6
var canvas = document.getElementById("<span style="font-family: Arial, Helvetica, sans-serif;">canvas"</span><span style="font-family: Arial, Helvetica, sans-serif;">),</span>
url = canvas.toDataURL();//
//以下代码为下载此图片功能
var triggerDownload = $("<a>").attr("href", url).attr("download", "img.png").appendTo("body");
triggerDownload[0].click();
triggerDownload.remove();

这里关注toDataURL()方法即可,可以把canvas转化成data形式的图片url,把这个url赋给<img/>标签即可显示图片,代码中其他部分为自己需要的下载功能。