1 function createXHR() { 2 if (typeof XMLHttpRequest != "undefined") { 3 return new XMLHttpRequest(); 4 } else if (typeof ActiveXObject != "undefined") { 5 if (typeof arguments.callee.activeXString != "string") { 6 var versions = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp"]; 7 8 for (var i = 0, len = versions.length; i < len; i++) { 9 try {10 var xhr = new ActiveXObject(versions[i]);11 arguments.callee.activeXString = versions[i];12 return xhr;13 } catch (ex) {14 //omit15 }16 }17 }18 return new ActiveXObject(arguments.callee.activeXString);19 } else {20 throw new Error("no xhr object available.");21 }22 }