canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法


Posted in HTML / CSS onJanuary 18, 2019

我们要绘制一张图片,内容包括一张背景图和一个动态生成的二维码,前提是背景图是项目本身的静态资源,二维码是服务端动态生成的,二者不在同一域名下。

解决办法:把所有图片都重定向同一个域名下:

let count = 0;
let bgImg = document.creatElement('img');
let qrImg = document.creatElement('img');
bgImg.src = redirectUrl('x.png');
qrImg.src = redirectUrl('y.png');
[bgImg, qrImg].forEach((e) => {
    e.onload = () => {
        count ++;
        if (count === 2) {
            drawerImg(bgImg, qrImg);  
        }
    }
})
function redirectUrl (url) {
    return 'https://xxx/view?fileUrl=' + encodeURIComponent(url);
}
function drawerImg (imgContent, qrContent, scaleBy = 2) {
    let {bgImgW, bgImgH} = {375, 800};
    let {qrx, qry, qrw, qrh} = {20, 700, 50, 50};
    let Canvas = document.createElement('canvas');
    let ctx = Canvas.getContext("2d");
    Canvas.width = bgImgW * scaleBy;
    Canvas.height= bgImgH * scaleBy;
    ctx.drawImage(imgContent, 0, 0, bgImgW * scaleBy, bgImgH * scaleBy);
    ctx.drawImage(qrContent, qrx * scaleBy, qry * scaleBy, qrw * scaleBy, qrh * scaleBy);
    
    let nodeI = document.createElement("img");
    nodeI.src = Canvas.toDataURL();
    document.body.appendChild(nodeI)
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
IE兼容css3圆角的实现代码
Jul 21 HTML / CSS
使用css3实现超炫的loading加载动画效果
May 07 HTML / CSS
CSS3实现各种图形的示例代码
Oct 19 HTML / CSS
HTML5中的nav标签学习笔记
Jun 24 HTML / CSS
网易微博Web App用HTML5开发的过程介绍
Jun 13 HTML / CSS
使用html5制作loading图的示例
Apr 14 HTML / CSS
Application Cache未缓存文件无法访问无法加载问题
May 31 HTML / CSS
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
Feb 28 HTML / CSS
HTML5中indexedDB 数据库的使用实例
May 11 HTML / CSS
Html5 APP中监听返回事件处理的方法示例
Mar 15 HTML / CSS
canvas探照灯效果的示例代码
Nov 30 HTML / CSS
使用CSS3实现按钮悬停闪烁动态特效代码
Aug 30 HTML / CSS
canvas绘制圆角头像的实现方法
Jan 17 #HTML / CSS
HTML5如何使用SVG的方法示例
Jan 11 #HTML / CSS
Canvas 像素处理之改变透明度的实现代码
Jan 08 #HTML / CSS
详解Canvas实用库Fabric.js使用手册
Jan 07 #HTML / CSS
Html5原创俄罗斯方块(基于canvas)
Jan 07 #HTML / CSS
h5使用canvas画布实现手势解锁
Jan 04 #HTML / CSS
canvas中普通动效与粒子动效的实现代码示例
Jan 03 #HTML / CSS
You might like
PHP中的strtr函数使用介绍(str_replace)
2011/10/20 PHP
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
学习JavaScript设计模式之中介者模式
2016/01/14 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
JavaScript仿微博输入框效果(案例分析)
2016/12/06 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
2016/12/24 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
vue2.0中click点击当前li实现动态切换class
2017/06/21 Javascript
iframe与主框架跨域相互访问实现方法
2017/09/14 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
11个并不被常用但对开发非常有帮助的Python库
2015/03/31 Python
Python中super函数的用法
2017/11/17 Python
浅谈PYTHON 关于文件的操作
2019/03/19 Python
详解Python读取yaml文件多层菜单
2019/03/23 Python
python通过TimedRotatingFileHandler按时间切割日志
2019/07/17 Python
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
某公司.Net方向面试题
2014/04/24 面试题
类和结构的区别
2012/08/15 面试题
测绘工程个人的自我评价
2013/11/10 职场文书
专营店会计助理岗位职责
2013/11/29 职场文书
数学系个人求职信范文
2014/01/30 职场文书
保护环境倡议书500字
2014/05/19 职场文书
房地产资料员岗位职责
2014/07/02 职场文书
音乐幼师求职信
2014/07/09 职场文书
工资收入证明样本(5篇)
2014/09/16 职场文书
迎国庆横幅标语
2014/10/08 职场文书
高考学习决心书
2015/02/04 职场文书
出国留学单位推荐信
2015/03/26 职场文书
2015年乡镇信访工作总结
2015/04/07 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python
如何利用React实现图片识别App
2022/02/18 Javascript