踩坑总结-vue
二维码下载
先安装qriously
npm install vue-qriously
直接上代码啦啦啦
<div class="box">
<qriously id='mycanvas' :value="this.value" :size="this.size" />
<el-button size="mini" type="primary" @click="handleDownloadQr2">
下载
</el-button>
</div>
data(){
value:'www.baidu.com',
size:200,
}
handleDownloadQr2(){
let canvas = document.querySelector('#mycanvas canvas');
let imgSrc = canvas.toDataURL();
let elem = document.createElement('a');
elem.setAttribute('href', imgSrc);
elem.setAttribute('download', '二维码.png');
document.body.appendChild(elem);
elem.click();
document.body.removeChild(elem);
},
重点: let canvas = document.querySelector(’#mycanvas canvas’);不能用let canvas = document.getElementById(“mycanvas”);代替,不然会报错
主要原因是document.getElementById(“mycanvas”)获得的元素不单单是canvas元素,还包括canvas外的div模块
打印document.getElementById(“mycanvas”)的结果
打印document.querySelector(’#mycanvas canvas’);结果
来源:CSDN
作者:千玺小迷妹
链接:https://blog.csdn.net/Evan_Ji/article/details/103969799