博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue中完美解决html2canvas图片跨域问题
阅读量:6423 次
发布时间:2019-06-23

本文共 718 字,大约阅读时间需要 2 分钟。

html2canvas在截图的过程中,如果遇到html中有跨域地址的图片,比如图片存在了别人的云上,截图的时候将不会显示图片,解决方案如下: Js部分

import html2canvas from 'html2canvas'data () {	return {		imageUrl: 'http://xxx.example.com', // 跨域地址		screenshotImage: ''	 // 保存的base64地址	}},methods: {	async shareHandle () {		const opts = {			useCORS: true		}		const ele = this.$refs.screenshot		const canvas = await html2canvas(this.$refs.screenshot, opts)      this.screenshotImage = canvas.toDataURL('image/jpg')	}}复制代码

html代码

复制代码

这里有几个关键的地方:

  1. allowTaint: trueuseCORS: true 都是解决跨域问题的方式,不同的是使用allowTaint 会对canvas造成污染,导致无法使用canvas.toDataURL 方法,所以这里不能使用allowTaint: true
  2. 在跨域的图片里设置 crossOrigin="anonymous" 并且需要给imageUrl加上随机数
  3. canvas.toDataURL('image/jpg') 是将canvas转成base64图片格式。

转载地址:http://jiwga.baihongyu.com/

你可能感兴趣的文章
洛谷P2726 阶乘 Factorials 数学
查看>>
类加载机制
查看>>
火柴棒等式(2008年NOIP全国联赛提高组)
查看>>
mongodb int型id 自增
查看>>
【转】关于大型网站技术演进的思考(十八)--网站静态化处理—反向代理(10)...
查看>>
Java中的4种代码块
查看>>
Ocelot(七)- 入门
查看>>
生成水杯热气
查看>>
程序员工作心法
查看>>
三个常用的PHP图表类库
查看>>
python中异常处理--raise的使用
查看>>
高中数学与初中数学的接轨点
查看>>
python 安装第三方模块
查看>>
Whitelabel Error Page 专题
查看>>
Spring Data Redis—Pub/Sub(附Web项目源码)
查看>>
RSD和wlwmanifest是什么
查看>>
Linkedin工程师是如何优化他们的Java代码的(转)
查看>>
winfrom 如何保存datagridview中的某一行数据
查看>>
面向领域驱动的应用开发框架Apworks 2.0发布
查看>>
开发自己的Web服务处理程序(以支持Ajax框架异步调用Web服务方法)
查看>>