Image.fromURL错误回调

时间:2014-05-09 20:49:21

标签: fabricjs

我正在尝试使用fromURL加载图片。问题是我希望能够加载默认图标,如果它无法到达图像服务器下载图像。查看文档我没有看到fromURL函数的错误回调。我们怎么能发现电话没有成功,因此做了适当的事情?当图像加载不成功时,似乎根本没有调用回调。

3 个答案:

答案 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' });

这是小提琴:http://jsfiddle.net/k7moorthi/30kmn5kL/

答案 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;
  }