safari ios 关于 canvas.toDataUrl 报错the operation is insecure

safari ios 关于 canvas.toDataUrl 报错the operation is insecure

月光魔力鸭

2020-10-22 17:57 阅读 2671 喜欢 7 safari canvas.toDataUrl

今天一个一直都很正常的功能跑在了safari浏览器上,结果报错了。

错误:The operation is insecure . 在使用canvas的 toDataUrl的时候报错,看了很多资料,基本上都说是设置跨域,但是我一直都有的啊。其实,只是顺序错了,setAttribute('crossOrigin','Anonymous') 要在设置 src之前设置。

如何解决?重要的事情说三遍: 跨域要在设置src之前设置。 跨域要在设置src之前设置。 跨域要在设置src之前设置。

OK 问题解决了。

var image = new Image();
//位置换一下下。
image.setAttribute("crossOrigin",'Anonymous');//跨域在前
image.src = href.href;//赋值在后
//剩下就可以安心的调用toDataUrl了。

当然,你也有可能是其他原因。

转载请注明出处: https://chrunlee.cn/article/web-canvas-ios-safari-error.html


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
在使用echarts 来做统计报表的时候,由于数量较多,准备将同类型的相同属性抽取出来,然后用来做默认属性的。结果发现一个问题
先记录下,不定哪天就查了..防止找不到或不全
有时候浏览网页经常会看见一些页面出现一些打字的效果,那么是怎么实现的呢?
在开发过程中经常会碰到跨frame 去操作的需求,那么如何获得这个frame呢,这里写了一个工具类,用来通过name获得frame的jq对象
问题是由一个BUG引起的,功能中有使用国际化组件,用的是jquery.i18n,在chrome上、ff上都没有什么问题,问题出在了IE上。万恶的IE..
在页面中不同的frame之间进行相互调用的话,我们可以通过frame获取对应的window然后进行调用,但是如果是浏览器不同的tab之间呢?
在项目开发过程中,分页是少不了的,之前封装了一个分页组件,样式是基于bootstrap的样式,当然也可以自己来修改
最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为[a,b]。