From d56bf591378b8f7bc1849eb8e9220edeac219f03 Mon Sep 17 00:00:00 2001 From: Josh Pearce Date: Fri, 4 Jan 2013 12:15:25 -0500 Subject: [PATCH] Add image load onerror handler Make sure, when loading from json, that a bad image path doesn't fail the desserialization Signed-off-by: kangax --- src/image.class.js | 11 +++++++++-- src/util/misc.js | 6 ++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/image.class.js b/src/image.class.js index 7d75130b..46847776 100644 --- a/src/image.class.js +++ b/src/image.class.js @@ -352,8 +352,15 @@ var instance = new fabric.Image(img, object); callback && callback(instance); - img = img.onload = null; - }; + img = img.onload = img.onerror = null; + }; + + /** @ignore */ + img.onerror = function(e) { + fabric.log('Error loading ' + img.src); + callback && callback(null, true); + img = img.onload = img.onerror = null; + }; img.src = src; }; diff --git a/src/util/misc.js b/src/util/misc.js index 8026e745..5e714d7c 100644 --- a/src/util/misc.js +++ b/src/util/misc.js @@ -223,8 +223,10 @@ } var klass = getKlass(o.type); if (klass.async) { - klass.fromObject(o, function (o) { - enlivenedObjects[index] = o; + klass.fromObject(o, function (o, error) { + if (!error) { + enlivenedObjects[index] = o; + } onLoaded(); }); }