失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > html2canvas截图时 不能使用跨域图片的解决方案

html2canvas截图时 不能使用跨域图片的解决方案

时间:2021-01-17 11:10:37

相关推荐

html2canvas截图时 不能使用跨域图片的解决方案

解决方案为三个地方,三个地方缺一不可:

1、html2canvas.js源码中修改两个地方:(如果是Vue项目在:node_modules—html2canvas—dist—html2canvas.js)

case 2:Logger.getInstance(this.id).debug("Added image " + key.substring(0, 256));return [4 /*yield*/, new Promise(function (resolve, reject) {var img = new Image();img.onload = function () { return resolve(img); };img.onerror = reject;//ios safari 10.3 taints canvas with data urls unless crossOrigin is set to anonymousif (isInlineBase64Image(src) || useCORS) {// img.crossOrigin = 'anonymous';img.crossOrigin = ''; // 第一个修改的地方}// img.src = src;// img.src = src; // !!!第二个修改的地方if(src.indexOf('data:image')>-1){ // 图片地址后加时间 base64图片不变// base64 图片操作img.src = src;}else{//path 图片操作img.src = src+"?"+new Date().getTime();}if (plete === true) {

上面两个地方修改之后还是不可以的,还有最后一步:

html2canvas(this.$refs.imageTofile, {backgroundColor: null,logging: true,useCORS: true // 第三步添加的地方}).then((canvas) => {。。。})

好了 大功告成了!耗费我两个小时的时间百度加尝试得到的结果,如果对你有用请点赞呦

提示:如果小伙伴们用的是火狐浏览器,应该只设置最后一个属性就可以了,但是其他浏览器就不能用哦

如果觉得《html2canvas截图时 不能使用跨域图片的解决方案》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。