html2canvas无法生成部分图片
本质原因是跨域, 后端好解决但是前端需要另辟蹊径:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
const handleImg2Base64 = (src: string) => { let img = new Image(); img.crossOrigin = "Anonymous"; img.src = src + '?time=' + new Date().valueOf(); img.onload = function () { let canvas: any = document.createElement('canvas'); canvas.width = img.width; canvas.height = img.height; canvas.getContext('2d').drawImage(img, 0, 0, img.width, img.height); let dataURL = canvas.toDataURL('image/jpeg'); myPrizeInfo.value.prizePicture = dataURL prizeDetail.value.prizePicture = dataURL } }
html2canvas( document.getElementsByClassName('content-container')[0] , { dpi: 120, useCORS: true, allowTaint: true, }).then((canvas: any) => { let base64 = canvas.toDataURL().replace('data:image/png;base64,', '') isGenerating.value = false; })
|