Мне такой вариант нравится:
if (!XMLHttpRequest) var XMLHttpRequest = function() {
for (var progIDs = ['Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'],
i = 0, length = progIDs.length; i < length; i++) try {
return new ActiveXObject(progIDs[i]);
} catch (err) {}
return null;
};
вроде работает.