我正在尝试使用fromURL
加载图像。问题是我希望能够加载默认图标,如果它无法到达图像服务器下载图像。查看文档我没有看到fromURL
函数的错误回调。我们怎么能发现电话没有成功,因此做了适当的事情?当图像加载不成功时,似乎根本没有调用回调。
您可以使用fabric.util.loadImage()
方法而不是fabric.Image.fromURL()
。
如果你看一下fromURL()
方法实现,它在内部使用loadImage()
。
以下代码可以帮助您:
fabric.util.loadImage('https://s3-eu-west-1.amazonaws.com/kienzle.dev.cors/img/image2.png', function(img) {
if(img == null) {
alert("Error!");
}else {
var image = new fabric.Image(img);
canvas.add(image).setActiveObject(image);
canvas.renderAll();
}
}, { crossOrigin: 'anonymous' });
您可以使用getElement()
来检查此错误。
fabric.Image.fromURL('/foo.jpg', (img) => {
if (img.getElement() === undefined) {
console.log('Failed to load image!');
return;
}
// do something on success
}
一旦你完成了这个功能,即使回调一直运行错误,你也可以用这种方式检查元素(正如其他所说):
let fabricBackgroundInstance = new fabric.Image.fromURL(imageToUse, (oImg) => {
if(oImg._element == null){
console.error('oImg', oImg._element);
return;
}