Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks JS (http://www.forosdelweb.com/f127/)
-   -   Problema con objeto Ajax en IE (http://www.forosdelweb.com/f127/problema-con-objeto-ajax-ie-411199/)

el_javi 21/07/2006 10:51

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.

:adios:

GatorV 21/07/2006 11:10

usa ajaxObj.prototype.getData, la forma en que lo estas haciendo no es la mas correcta, de acuerdo a la documentacion oficial, el prototype es la forma correcta de asignar mas variables o funciones a un objeto X, y aunque si lo puedes llamar asi: ajaxObj.getData(), para definirlo debes de usar el prototype.

el_javi 21/07/2006 11:16

Hola GatorV

Ante todo, gracias por tu contestación.

Creo que te he entendido, pero me quedan mis dudas, ademas de que lo he probado, y no me funciona

Creo haberte entendido, que a la hora de definir mi función, debo de definirla asi¿?
Código PHP:

        ajaxObj.prototype.getData = function(data_formatparamparam_valuedestiny_URLmetodtheStatusid_destinywhereCondition)
        {
            
alert("En esta función cogeremos los datos del servidor");
        } 

y a la hora de llamarla la puedo llamar así ¿?
Código PHP:

LIB_ajax.getData() 

En IE, y Firefox, me da error.

Te rogaría me lo mirases, y si puedes, uses mi código posteado, a fin de que los dos estemos hablando de lo mismo.

Muchas gracias por dedicarme parte de tu tiempo.

Un saludo, y espero alguna contestación.

:adios:


La zona horaria es GMT -6. Ahora son las 06:11.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.