我面临的第一个障碍是Vue中没有document.getElementById
的简写,所以我实现了function like this one。我面临的第二个障碍是,恕我直言,在处理没有<!DOCTYPE html>
和<body>
的情况时,html2canvas docs非常有限。
下面是我的.vue
文件中的标记摘要:
<template>
<div>
<md-layout>
<div id="capture" class='m1 '>
// more markup...
</div>
</md-layout>
</div>
</template>
这就是我尝试实现捕获函数的方式:
//Vue equivalent for document.getElementById
showCaptureRef() {
console.log(this.$refs.capture);
},
// Screen capture function
downloadVisualReport () {
let vc = this
alert("Descargando reporte visual")
html2canvas(vc.showCaptureRef).then(canvas => {
vc.document.body.appendChild(canvas)
}).catch((error) => {
console.log("Erorr descargando reporte visual")
alert("Error descargando el reporte visual")
});
},
3条答案
按热度按时间j5fpnvbx1#
我发现我犯了两个错误:
首先,我用
id='capture'
代替了ref="capture"
第二,这一行
vc.document.body.appendChild(canvas)
,需要更改为document.body.appendChild(canvas)
下面是将画布作为图像下载的函数的最终代码:
moiiocjp2#
对于未来的读者。试试这个vue-html2canvas mixin。
hyrbngr73#