遇到的问题
在项目开发中有一个需求,用户上传一个时间线的数据,通过选择不同的模板,将时间线数据可视化。用户保存这个文件时,将模板预览图截取作为文件的封面。
实现的思路
最终的结果就是把相应的DOM转换成一张图片传回后台。关键难点在于如何把DOM转换成图片。然鹅,最难搞定的那部分已经有了一个较为成熟的框架html2canvas。项目时间比较急迫,先使用第三方插件,自己封装canvas方法来截图的方案,后续再尝试一下。
- 获取iframe的dom结构
- 将获取到的dom直接传给html2canvas,转换canvas
- 调用toDataURL将canvas转换成图片base64格式
html
页面展示
实现步骤
- 获取iframe的dom结构
const iframeHtml = this.$refs.timeLineDom.contentWindow // 获取iframe内容
const iframeBody = iframeHtml.docu