Foros del Web » Programando para Internet » Javascript »

Problema con Objetos en IE

Estas en el tema de Problema con Objetos en IE en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 21/07/2006, 10:54
Avatar de el_javi  
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 19 años, 1 mes
Puntos: 10
Problema con Objetos 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.

  #2 (permalink)  
Antiguo 21/07/2006, 16:31
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
hola el_javi.

Mis conosimientos no son lo suficientemente amplios para darte una respuesta 100% sertera, pero podrías probar modificar esta linea a ver que pasa:

Cita:
var ajaxObj = null;
por
Cita:
var ajaxObj = new Object();
A simple vista no arroja mas ningún error, pero no lo he probado integramente para poder aceverarlo 100%.

espero no haberte confundido aún mas, saludos.
__________________
by Capitán Buscapina
.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:53.