// // Define a list of Microsoft XML HTTP ProgIDs. // var XMLHTTPREQUEST_MS_PROGIDS = new Array( "Msxml2.XMLHTTP.7.0", "Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ); // // Retorna um objeto do tipo XMLHttpRequest. // function instanciaAjax() { var httpRequest = null; // Cria a instância apropriada para o browser. if (window.XMLHttpRequest != null) httpRequest = new window.XMLHttpRequest(); else if (window.ActiveXObject != null) { // Senão, cria uma instância para IE. var success = false; for (var i = 0; i < XMLHTTPREQUEST_MS_PROGIDS.length && !success; i++) { try { httpRequest = new ActiveXObject(XMLHTTPREQUEST_MS_PROGIDS[i]); success = true; } catch (ex) {} } } // Exibe um erro caso nenhuma das instâncias tenha sido criada. if (httpRequest == null) alert("Error in HttpRequest():\n\n" + "Cannot create an XMLHttpRequest object."); return httpRequest; }
Essa implementação foi publicada no site www.brainjar.com, o qual recomendo que acesse. Não possui muito conteúdo, mas os que tem, estão minunciosamente explicados.
Abraço!