Vue微信H5项目中 此页面需要把页面绘制成功一张图片保存
使用了html2canvas完成此功能
在mouted中加载了插件
`~~~~
var opts = {
useCORS: true, // 允许加载跨域的图片
allowTaint: false,
tainttest: true, // 检测每张图片都已经加载完成
logging: true,
backgroundColor: null
}
html2canvas(document.querySelector('.card'), opts).then(canvas => {
const imgUrl = canvas.toDataURL('image/png')
this.dataURL = imgUrl
this.firstFlag = false})~~~~
})~~~~`
结果出现生成的图片出现空白
不确定图片跨域了(本地开发环境)还是图片没加载完成就生成了图片
尝试了三种解决方案
1.mounted 设置延时器 (电脑可以,真机无效)
2.opts中配置允许跨域 (无效)
3.给img标签设置crossorigin="anonymous"
这三种都不能用
有做过的可以帮忙解答一下吗
对于超过屏幕高度的内容html2canvas无法截取,目前知道的比较好的有两个方法
1、通过复制DOM节点,插入到body下可解决,不过会出现当多个图片层叠的时候元素会出现混乱闪过的情况,不是很好用
2、通过canvas画布解决(推荐)