将画布对象保存为图像时出现安全错误
Get security error when saving canvas object into an image
不完全是。如果我只是绘制(ex lines,rect…)并尝试将画布导出为图像。它工作得很好。然而,如果我使用canvas.drawImage(...)
函数将图像放在画布上。然后尝试将其导出为图像,我得到以下安全错误:
[16:05:05.326] uncaught exception: [Exception... "Security error" code: "1000" nsresult:
"0x805303e8 (NS_ERROR_DOM_SECURITY_ERR)" location:
"http://127.0.0.1:8020/Blackboard/Models/BlackboardCanvas.js Line: 82"]
我假设canvas.drawImage
会从图像中获取原始像素并将其粘贴到画布上,但我想我错了。我能做什么?
您描述的行为符合规范。摘录:
所有
canvas
元素必须以origin-clean设置为true开始。如果发生以下任何操作,则必须将该标志设置为false:
- 元素的2D上下文的
drawImage()
方法被调用,HTMLImageElement
或HTMLVideoElement
的起源与拥有canvas
元素的Document
对象的起源不相同。[…]
当origin-clean标志设置为false的
canvas
元素的toDataURL()
方法被调用时,该方法必须抛出一个SecurityError
异常。
规避此问题的唯一方法是使用服务器端技术为您获取远程图像,并从您的同一域重新提供它。
在调用canvas.drawImage
之前是否等待图像完全加载?
var img = new Image();
img.onload = function(){
canvas.drawImage(img,0,0);
//do whatever else here
};
img.src = 'foo.jpg';
相关文章:
- 从安卓设备将图像上传到服务器时,文件扩展名错误
- 在Firefox中导出高图表时出现黑色图像错误
- JS预加载图像错误
- JQuery 图像错误处理
- Javascript图像动画闪烁图像错误
- 在主干视图中处理图像错误事件
- Jquery 在图像错误上对多个元素不起作用
- PHP 中的“找不到一个或多个图像”错误
- Jquery 在动态图像上不起作用的图像错误
- Javascript-随机图像错误
- Jquery插件Croppie裁剪图像错误
- 在ie7中没有注册图像错误
- 通过iframes预加载图像错误
- 区分图像错误和形状错误
- 画布绘制图像错误
- NodeJs/Formidable,上传图像错误
- 在服务器上保存图像错误
- 鼠标位置在Jquery点击图像(错误的元素滚动)
- wordpress中出现Javascript图像错误
- 在图像错误后向Span添加文本