From d3b2f899a34f8d3e3440ac671af80168e945e8bb Mon Sep 17 00:00:00 2001 From: Alexis Deveria Date: Fri, 8 Oct 2010 18:21:46 +0000 Subject: [PATCH] Fixed issue 698: failure to xhr load the svg reslts in an unusable svg-edit screen git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1787 eee81c28-f429-11dd-99c0-75d572ba1ddd --- editor/svg-editor.js | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/editor/svg-editor.js b/editor/svg-editor.js index 60feb65d..0b252b01 100644 --- a/editor/svg-editor.js +++ b/editor/svg-editor.js @@ -4406,9 +4406,15 @@ var callbacks = []; - function loadSvgString(str) { - if(!svgCanvas.setSvgString(str)) { - $.alert('Error: Unable to load SVG data.'); + function loadSvgString(str, callback) { + var success = svgCanvas.setSvgString(str) !== false; + callback = callback || $.noop; + if(success) { + callback(true); + } else { + $.alert('Error: Unable to load SVG data', function() { + callback(false); + }); } } @@ -4433,18 +4439,23 @@ }); }; - Editor.loadFromURL = function(url, cache) { + Editor.loadFromURL = function(url, opts) { + var cache = opts.cache; + var cb = opts.callback; + Editor.ready(function() { $.ajax({ 'url': url, 'dataType': 'text', cache: !!cache, - success: loadSvgString, + success: function(str) { + loadSvgString(str, cb); + }, error: function(xhr, stat, err) { - if(xhr.responseText) { - loadSvgString(xhr.responseText); + if(xhr.status != 404 && xhr.responseText) { + loadSvgString(xhr.responseText, cb); } else { - $.alert("Unable to load from URL. Error: \n"+err+''); + $.alert("Unable to load from URL. Error: \n"+err+'', cb); } } });