一、背景:
使用JS页面截图技术实现将网页内容截图并分享到媒体(微博、空间、贴吧等)。
二、实现思路:
1. 将html页面转换成canvas
2. 将canvas转换成base64图片
3. 将base64图片上传到云端
4. 通过百度分享技术将图片分享到媒体
三、具体实现:
1. 将html页面转换成canvas
使用html2canvas实现html到canvas的转换:
html2canvas(document.getElementById(id), {
onrendered:function(canvas) {
//canvas为html转换成的canvas
},
proxy: url,
useCors: true,
letterRendering: true
});
在使用html2canvas插件的过程有以下几点需要注意:
1.当Dom页面元素太多时,调用html2canvas会失败
2. html2canvas是异步调用,想将该方法改成同步,必须修改源代码
2. 将canvas转换成base64图片
使用Canvas2Image实现canvas到base64 png图片的转换:
html2canvas(document.getElementById(id) {
onrendered: function(canvas) {
var oImg = Canvas2Image.saveAsPNG(oCanvas,true);
}
});
相当于: toDataURL("image/png");
3. 将base64位图片上传到云端
使用接口将base64图片上传到云端
4. 通过百度分享技术将图片分享到媒体(微博、空间、贴吧等)
function share(){
var bd_share_config = {
common : {
bdPic:url,
},
image : [{
viewList :['tsina','tqq','qzone','renren','more']
}]
};
window._bd_share_main.init(bd_share_config);
}
其中bdPic定义了分享图片的地址,viewList则是百度分享列表的选项