最近几期我想分享一下我的项目中使用vue+fabric.js过程中遇到的坑。

就比如给canvas加背景时,就会出现跨域的报错提示。

我用的是vue-element相关框架,在此不多做赘述,后面再出专题讲我的前端架构。

vue的methods:{}方法中写入:

getURLBase64(url) {  //将远程图片下载本地成为base64图片let _this = this;return new Promise((resolve, reject) => {var xhr = new XMLHttpRequest()xhr.open('get', url, true)xhr.responseType = 'blob'xhr.onload = function() {if (this.status === 200) {var blob = this.responsevar fileReader = new FileReader()fileReader.onloadend = function(e) {var result = e.target.result;//console.log(result)_this.imageUrl = result;resolve(result)};fileReader.readAsDataURL(blob)}};xhr.onerror = function() {reject()};xhr.send()})
},

在调用的地方如下:

let bgUrl =  url;
let _this = this;_this.getURLBase64(bgUrl);                             //将远程图片URL转成本地Base64var img = new Image();
img.setAttribute("crossOrigin",'Anonymous');
img.src = bgUrl;
img.onload = function () {                                       //图片获取宽高console.log(img.width,img.height);_this.bgWidth = img.width;_this.bgHeight = img.height;_this.$refs.canvasshelf.canvas.setWidth(_this.bgWidth); //给画布设置图片宽高_this.$refs.canvasshelf.canvas.setHeight(_this.bgHeight);_this.$nextTick(() => {_this.$refs.canvasshelf.renderAll()});_this.$refs.canvasshelf.setbackground('#fff');let canvas =  _this.$refs.canvasshelf.canvas;//给画布设置背景图片canvas.setBackgroundImage(_this.imageUrl, canvas.renderAll.bind(canvas), {opacity: 1,angle: 0,left: 0,top: 0,originX: 'left',originY: 'top'});
}

以上算是个伪代码,看一个思路,方便以后遇到相同问题,想起来解决方案!~

fabricJs中给canvas添加跨域背景图片报错Tainted canvases may not be exported相关推荐

  1. cesium中的billboard加载在线图片报错Tainted canvases may not be loaded

    加载项目中的图片没有问题,加载在线图片的时候就会报错 解决方法: image.setAttribute('crossOrigin', 'anonymous'); 原因:canvas 绘制的时候在线图片 ...

  2. 使用canvas截图跨域导致的报错(Failed to execute ‘toDataURL‘ on ‘HTMLCanvasElement)

    使用跨域图片绘制会污染canvas画布,导致无法导出canvas数据,转化成图片 解决办法:通过设置crossOrigin来解决 let video = document.createElement( ...

  3. Canvas引入跨域的图片导致toDataURL()报错的问题的解决

    本文介绍了Canvas引入跨域的图片导致toDataURL()报错的问题的解决,分享给大家,具体如下: [场景] 用户打开网页,则请求腾讯COS(图片服务器)上的图片js代码.使用canvas绘图. ...

  4. Access-Control-Allow-Origin跨域问题的报错以及解决

    Access-Control-Allow-Origin跨域问题的报错以及解决 这是浏览器控制台报错详情,在前后端分离,前段需要传数据进入后端时报的错 解决方案:配置跨域过滤器 1.先复制以下代码(过滤 ...

  5. Vue3解决跨域问题,报错Access-Control-Allow-Origin

    Vue3解决跨域问题Access to XMLHttpRequest at 'https://www.runoob.com//try/ajax/json_demo.json' from origin ...

  6. 一行代码解决Vue跨域请求Vue报错:AxiosError

    这种错误一般情况下都是域名错误或者跨域权限不够,也就是我们常说的"网络请求跨域错误" 我们首先是核实一下域名是否正确,如果域名正确没有输入错误那就是跨域权限问题了,那我们如何解决呐 ...

  7. HTML页面跨域请求图片资源报错:Failed to load resource: the server responded with a status of 403 (Forbidden)

    笔者近日刚刚完成了一个Spring boot项目,首页 index.html 页面元素 <img> 引用了第三方服务器的图片链接,在本地测试环境输入 http://localhost 或者 ...

  8. Vue中利用canvas添加炫动背景

    1.展示页面 <template><div id="main"><canvas id="myCanvas" style=" ...

  9. Canvas - 错误:Tainted canvases may not be exported

    记录日期:2019年6月26日 22点21分 Canvas 的内容保存为图片,但是一直不成功.报错信息如标题,意思指被污染的画布不能被导出. 理论上来讲,导出为图片是一定可行的,但是被污染的画布是不允 ...

最新文章

  1. js里的document对象大全(DOM操作)
  2. 中国数字化进程比发达国家快,小程序让我感到自豪 | IT领袖峰会
  3. php拓展板块 按需开启,php如何按需加载方式来增加程序的灵活度
  4. python教学视频-Python入门视频课程
  5. TensorFlow2-迁移学习
  6. my appointment Fiori customizing里的Calendar checkbox的实现逻辑
  7. firefox flash-plugin怎样安装
  8. 网络安装archlinux(2012.8.20)笔记
  9. 接口测试如何在json中引用mock变量
  10. android:layout_margintop=3dip,南昌航空大学android期末复习资料之 编程题.pdf
  11. 关于if else 和 switch 的区别 究竟哪个更快
  12. 随手记_研究生怎样做学术
  13. HTML实现简易音乐网站
  14. 微信授权登录增加浏览器历史记录解决方法
  15. 敏捷概念.Stacey矩阵
  16. PositiveUnlabeled Data Learning——第四弹(Semi-Supervised Classification/AUC Optimization)
  17. 最有效的穴位按摩减肥法
  18. el-upload自定义文件列表
  19. PDF格式的文档如何编辑修改
  20. vue项目中创建子路由组件

热门文章

  1. Android 常有的Utils工具类总结
  2. memset的用法详解
  3. iOS中UITextField的使用
  4. 5月2日,今日信息差
  5. Linux visudo配置详解
  6. C++ STL容器 —— map/multimap 用法详解
  7. 某大厂开发者对于Android多线程的总结,大厂直通车!
  8. 字节跳动面试:一线互联网大厂面试真题系统收录!源码+原理+手写框架
  9. 城区现有5种共享单车 ofo率先加入智慧城市建设
  10. java jframe教程_Java JFrame