Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/07/2006, 10:51
Avatar de el_javi
el_javi
 
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 19 años, 7 meses
Puntos: 10
Problema con objeto Ajax en IE

Buenas tardes a tod@s.

Espero que puedan ayudarme, y tengan un poco de tiempo para dedicarme.

Me encuentro en proceso de desarrollo de una de mis primera Webs con Ajax, y me encuentro con un problema.

Creo, que el problema no es en lo referido a AJAX (httpRequest) sino a un problema de Objetos, el cual, no me doy cuenta y no veo.

Les voy a postear el comienzo de desarrollo de mi librería y posteriormente, les digo qué es lo que me ocurre.

Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<
html>
<
head>
    <
title>Untitled</title>
    <
script language="JavaScript1.2" type="text/javascript">
    
// "Clase LIB_ajax"
    
function LIB_ajax_object()
    {
        
// variable para el uso del objeto Ajax
        
var ajaxObj null;
        
        
/* *********************************************************** CREACIÓN DEL OBJETO AJAX ***************************************************************** */
    
        // Para Navegadores IE con Javascript 5 o superior (compilación condicional)
        // Los navegadores que no sean Explorer interpretarán todo este código como un comentario
    
        /*@cc_on @*/
        /*@if(@_jscript_version >= 5)
        {
            // Usamos compilación condicional para evitar errores en versiones de Internet Explorer antiguas.
            var ids = ["Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0", "Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP"];
            for(var i=0; !ajaxObj && i<ids.length; i++)
            {
                try
                {
                    ajaxObj = new ActiveXObject(ids[i]);
    //                alert (ajaxObj)
                }
                catch(ex)
                {
                    ajaxObj = false;
                }
            }
        }
        @end @*/
        
        // Para Mozilla, Nescape y Opera
        
if (!ajaxObj && typeof XMLHttpRequest != "undefined")
        {
    
//        alert("creado en FIREFOX, Netscape, Opera");
            
ajaxObj = new XMLHttpRequest();
        }
        
    
//    alert (ajaxObj);
        /* ***************************************************************************************************************************************************** */
    
        // Function to get data from Server
        
ajaxObj.getData = function(data_formatparamparam_valuedestiny_URLmetodtheStatusid_destinywhereCondition)
        {
            
alert("En esta función cogeremos los datos del servidor");
        }
        
        return(
ajaxObj);
    }
    
    
    
//creamos el objeto
    
var LIB_ajax = new LIB_ajax_object();
    
</script>
    
    <script language="JavaScript1.2" type="text/javascript">
        function cogerDatos()
        {
            LIB_ajax.getData();
        }
    </script>
    </head>
    
<body>
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td id="head">
        <ul>
            <li><a href="javascript:void(null)" onclick="cogerDatos()" title="Showroom">Showroom</a></li>
            <li><a href="javascript:void(null)" onclick="cogerDatos()" title="Catálogo de Productos"><span class="pres">Catálogo Productos</span></a></li>
            <li><a href="javascript:void(null)" onclick="cogerDatos()" title="Directorio de Empresas">Directorio Empresas</a></li>    
            <li><a href="javascript:void(null)" onclick="cogerDatos()" title="Noticias y Eventos">Noticias y Eventos</a></li>
        </ul>

    </td>
  </tr>
</table>
</body>
</html> 
El código arriba posteado, funciona correctamente en: Firefox, Netscape y Opera (acabo de comprobarlo otra vez).

El problema es Internet Explorer.

Al cargar la página, me da un error de Javascript el cual dice que "El objeto no acepta la propiedad o método", y hace refernecia a la línea de ajaxObj.getData = function (.......

Por favor, ruego que si alguien sabe porqué me está fallando esto, me ayude o me postee lo necesario para hacerlo funcionar.

Me considero un medio-alto programador en Javascript, pero me tiene loco este tema, dado que hace 6 horas que intento solucionarlo, y no lo veo (quizas esté pasando sobre el problema, y de tanto insistir, no me doy cuenta).

Os agradezco vuestra paciencia al leer este post, y más aun os agradeceré la información que me podais dar para seguir trabajando.

Ante todo, muchas gracias.

Un saludo para tod@s.


Última edición por el_javi; 21/07/2006 a las 10:57