diff options
author | Andrew Dolgov <[email protected]> | 2013-03-18 10:26:24 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2013-03-18 10:26:26 +0400 |
commit | f0cfe83e3725f9a3928da97a6e3085e79cb25309 (patch) | |
tree | 4b0af188defaa807c7bc6ff3a101b41c9166c463 /lib/dojo/request/handlers.js.uncompressed.js | |
parent | 9a2885da170ffd64358b99194095851a2d09c1b6 (diff) |
upgrade dojo to 1.8.3 (refs #570)
Diffstat (limited to 'lib/dojo/request/handlers.js.uncompressed.js')
-rw-r--r-- | lib/dojo/request/handlers.js.uncompressed.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/lib/dojo/request/handlers.js.uncompressed.js b/lib/dojo/request/handlers.js.uncompressed.js new file mode 100644 index 000000000..7c0ed8302 --- /dev/null +++ b/lib/dojo/request/handlers.js.uncompressed.js @@ -0,0 +1,62 @@ +define("dojo/request/handlers", [ + '../json', + '../_base/kernel', + '../_base/array', + '../has' +], function(JSON, kernel, array, has){ + has.add('activex', typeof ActiveXObject !== 'undefined'); + + var handleXML; + if(has('activex')){ + // GUIDs obtained from http://msdn.microsoft.com/en-us/library/ms757837(VS.85).aspx + var dp = [ + 'Msxml2.DOMDocument.6.0', + 'Msxml2.DOMDocument.4.0', + 'MSXML2.DOMDocument.3.0', + 'MSXML.DOMDocument' // 2.0 + ]; + + handleXML = function(response){ + var result = response.data; + + if(!result || !result.documentElement){ + var text = response.text; + array.some(dp, function(p){ + try{ + var dom = new ActiveXObject(p); + dom.async = false; + dom.loadXML(text); + result = dom; + }catch(e){ return false; } + return true; + }); + } + + return result; + }; + } + + var handlers = { + 'javascript': function(response){ + return kernel.eval(response.text || ''); + }, + 'json': function(response){ + return JSON.parse(response.text || null); + }, + 'xml': handleXML + }; + + function handle(response){ + var handler = handlers[response.options.handleAs]; + + response.data = handler ? handler(response) : (response.data || response.text); + + return response; + } + + handle.register = function(name, handler){ + handlers[name] = handler; + }; + + return handle; +}); |