Comunidad de diseño web y desarrollo en internet online

funcion ajax para principales navegadores

Citar            
MensajeEscrito el 05 Abr 2012 03:21 pm
hola tengo esta funcion ajax

Código Javascript :

function nuevoAjax()
{
        /* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
        lo que se puede copiar tal como esta aqui */
        var xmlhttp=false;
        try
        {
                // Creacion del objeto AJAX para navegadores no IE
                xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
                try
                {
                        // Creacion del objet AJAX para IE
                        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch(E)
                {
                        if (!xmlhttp && typeof XMLHttpRequest!='undefined') xmlhttp=new XMLHttpRequest();
                }
        }
        return xmlhttp;
}


quisiera saber como seria pero para todos los navegadores por lo menos los principales firefox,chome,

Por angelo27

Claber

136 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Abr 2012 03:58 pm
Esta función está equivocada. La parte del código que dice "// Creacion del objeto AJAX para navegadores no IE" intenta crear un objeto ActiveX pero solamente IE es capaz de hacerlo, por lo tanto no es para los navegadores no IE.

Lo correcto sería verificar si el objeto window tiene el método XMLHttpRequest, en ese caso ejecutar ese método que devuelve el objeto Ajax, y si no lo tiene (significa que es IE 8 o anterior), usar el objeto ActiveX correspondiente:

Código Javascript :

function nuevoAjax() {
if (window.XMLHttpRequest) {
  return new XMLHttpRequest();
} else {
    if (window.ActiveXObject) { // Es IE <= 8 ?
       return new ActiveXObject("Microsoft.XMLHTTP");
    } else { // Si ni siquiera tiene el objeto ActiveXObject...
      alert("No se pudo crear el objeto XMLHttpRequest");
      return null;
    }
  }
}


Este código lo escribí al vuelo. Un código más robusto tendría que verificar qué versión del objeto ActiveX de IE posee el navegador. Es bastante improbable que te encuentres con un IE5.5 o 4.0 pero valdría la pena considerarlo.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 07 Abr 2012 05:47 pm
ok thank!

Por angelo27

Claber

136 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.