mirror of
https://github.com/atom/atom.git
synced 2026-01-24 06:18:03 -05:00
62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
|
|
/**
|
|
* based on code from:
|
|
*
|
|
* @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.
|
|
* Available via the MIT or new BSD license.
|
|
* see: http://github.com/jrburke/requirejs for details
|
|
*/
|
|
define(function(require, exports, module) {
|
|
|
|
exports.get = function (url, callback) {
|
|
var xhr = exports.createXhr();
|
|
xhr.open('GET', url, true);
|
|
xhr.onreadystatechange = function (evt) {
|
|
//Do not explicitly handle errors, those should be
|
|
//visible via console output in the browser.
|
|
if (xhr.readyState === 4) {
|
|
callback(xhr.responseText);
|
|
}
|
|
};
|
|
xhr.send(null);
|
|
};
|
|
|
|
var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];
|
|
|
|
exports.createXhr = function () {
|
|
//Would love to dump the ActiveX crap in here. Need IE 6 to die first.
|
|
var xhr, i, progId;
|
|
if (typeof XMLHttpRequest !== "undefined") {
|
|
return new XMLHttpRequest();
|
|
} else {
|
|
for (i = 0; i < 3; i++) {
|
|
progId = progIds[i];
|
|
try {
|
|
xhr = new ActiveXObject(progId);
|
|
} catch (e) {}
|
|
|
|
if (xhr) {
|
|
progIds = [progId]; // so faster next time
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!xhr) {
|
|
throw new Error("createXhr(): XMLHttpRequest not available");
|
|
}
|
|
|
|
return xhr;
|
|
};
|
|
|
|
exports.loadScript = function(path, callback) {
|
|
var head = document.getElementsByTagName('head')[0];
|
|
var s = document.createElement('script');
|
|
|
|
s.src = path;
|
|
head.appendChild(s);
|
|
|
|
s.onload = callback;
|
|
};
|
|
|
|
}); |