我正在尝试使用fromURL
加载图片。问题是我希望能够加载默认图标,如果它无法到达图像服务器下载图像。查看文档我没有看到fromURL
函数的错误回调。我们怎么能发现电话没有成功,因此做了适当的事情?当图像加载不成功时,似乎根本没有调用回调。
答案 0 :(得分:4)
您可以使用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' });
答案 1 :(得分:1)
您可以使用getElement()
来检查此错误。
fabric.Image.fromURL('/foo.jpg', (img) => {
if (img.getElement() === undefined) {
console.log('Failed to load image!');
return;
}
// do something on success
}
答案 2 :(得分:1)
一旦您完成了该功能,即使回调继续运行时仍然出错,您也可以按照以下方式检查元素(如其他所说):
let fabricBackgroundInstance = new fabric.Image.fromURL(imageToUse, (oImg) => {
if(oImg._element == null){
console.error('oImg', oImg._element);
return;
}