Foros del Web » Programando para Internet » Javascript » Frameworks JS »

IE8, firefox y safari no funciona

Estas en el tema de IE8, firefox y safari no funciona en el foro de Frameworks JS en Foros del Web. hola buenas estoy haciendo una web en al que uso ajax. empece con esto hace unos cuantos meses en una web, y ahora lo estoy ...
  #1 (permalink)  
Antiguo 18/06/2009, 08:13
 
Fecha de Ingreso: mayo-2008
Mensajes: 19
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta IE8, firefox y safari no funciona

hola buenas estoy haciendo una web en al que uso ajax. empece con esto hace unos cuantos meses en una web, y ahora lo estoy usando para otra. Me doy cuenta que con el IE8, safari y firefox no me funciona bien al crear el objeto xmlhttp

tengo el siguiente codigo:
Código:
function crearAjax()
{
    var xmlhttp=false;
     try 
    {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } 
    catch (e) 
    {
        try 
        {
               xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
          } 
        catch (E) 
        {
               xmlhttp = false;
          }
     }

    if (!xmlhttp && typeof XMLHttpRequest!='undefined') 
    {
          xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
}
en el menu de la web lo que hago es llamar a funciones que me cargar en un div contenedor el contenido de un docmento html, el cual solo tiene lo que me interesa.
aqui por ejemplo cargaria la galeria de fotos
Código:
function Galeria()
{
    var contenedor;
    contenedor = document.getElementById('content');
    
    // creamos un nuevo objeto ajax
    ajax=crearAjax();
    
    //cargar el archivo html por el método GET
    ajax.open("GET", "Galeria/Galeria.htm",true);
    
    ajax.onreadystatechange=function() 
    {
        if (ajax.readyState==4) // Readystate 4 significa que ya acabó de cargarlo
        {
            content.innerHTML = ajax.responseText
        }
    }
    ajax.send(null)
}
creo que como el ie8 ha salido hace poco puede que el codigo no valga porque se haga diferente lo de xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
que se puede hacer tambien con un array e ir recorriendo poniendo "Microsoft.XMLHTTP.5.0", "Microsoft.XMLHTTP.4.0", etc...
mirando por internet he visto solo ejemplos hasta el 7.0 que a mi me funciona.

alquien sabria decirme que pasa con el ie8, safari y firefox. ultimas versiones.

Gracias
  #2 (permalink)  
Antiguo 18/06/2009, 10:14
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: IE8, firefox y safari no funciona

Antes de nada un par de cosas,...y deseo no me mal interpretes

1º - Yo realizo peticiones Ajax en Firefox y no tengo ningun problema. Tambien he probado Safari y lo mismo...La función que empreo para crear los objetos XMLHttpRequest es exactamente igual a la tuya. No entiendo que debe estar sucediéndote.
2º - Me parece un poco rudo la forma en que tienes de cambiar de opción de menu, si es que te he entendido bien. Me explico...
Bajo mi humilde punto de vista no tiene ningun sentido hacer una petición al servidor si éste no va a procesar ningun lenguaje del lado del servidor, tal como PHP o ASP (consultas a Bd, generar codigo HTML dinamico,...), siendo que esto mismo lo podrías hacer con javascript y css (display:none,block,...)

En cualquier caso, cada uno en su casa y Dios en la de todos,...

Si quieres hacer la funcionalidad del menu con javascript y css dime que te preparo un ejemplo rápido y verás que es algo de lo mar simple.

Y en cuanto al problema de AJAX. ¿Que es lo que sucede y que debería suceder?

Saludos
__________________
Si quieres puedes y si puedes debes. Imposible is nothing!!!
  #3 (permalink)  
Antiguo 19/06/2009, 13:50
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: IE8, firefox y safari no funciona

...... nunca se me hubiera ocurrido
Cita:
ajax.open("GET", "Galeria/Galeria.htm",true);
Si crees que el problema puede estar en la función que crea el objeto, prueba esta

Código javascript:
Ver original
  1. function creaAjax(){
  2.     var ajaxs = ["Msxml2.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLH TTP.5.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];
  3.     var ajax = false;
  4.     for(var i=0 ; !ajax && i<ajaxs.length ; i++){
  5.         try{
  6.             ajax = new ActiveXObject(ajaxs[i]);   // Internet Explorer
  7.         }
  8.         catch(e) {
  9.             ajax = false;
  10.         }
  11.     }
  12.     if(!ajax && typeof XMLHttpRequest!='undefined') {
  13.         ajax = new XMLHttpRequest();  // Firefox, Opera 8.0+, Safari
  14.     }
  15.     return ajax;
  16. }

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #4 (permalink)  
Antiguo 22/06/2009, 16:54
 
Fecha de Ingreso: mayo-2008
Mensajes: 19
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: IE8, firefox y safari no funciona

matak la cuestion que con asp no me va, porque al no refrescarse la pantalla no interpreta el codigo.. lo uncio que hago con esto es que vaya mas rapido. y tener todo separado por asi decirlo como en modulos que voy cargando en el contenedor.
tu dices de ahcerlo con un monton de capas y ocultar o mostras dependiendo del click no? pero eso me tardaria mucho en cargar... cargar todas las capas con las imagenes y todo de toda una web... es mucho.

lo que tneog es un index que seria una masterpage (por asi decirlo.. porque no lo he hecho en asp.net) vamos como si fuese la carcasa, con la cabecera el menu etc. y leugo tengo un monton de archivos .htm como por ejemplo galeria, contacto, colaboradores, flyers, agenda, etc.etc.

en la index tengo una capa llamada content y ahi voy cambiando el contenido con cada otra pagina htm de esta manera(el codigo anterior)

el error no se donde puede estar. el explorer no me da error. simplemente no me carga nada en la capa content. no se si sera en la funcion crearAjax o en la funcion galeria (que es la que carga el documento galeria.htm)
  #5 (permalink)  
Antiguo 23/06/2009, 05:16
 
Fecha de Ingreso: mayo-2008
Mensajes: 19
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: IE8, firefox y safari no funciona

adler ese script que tu pones creo que es el primero que use y no me funcionaba, pero de todas maneras lo voy a volver a probar a ver. y te digo
  #6 (permalink)  
Antiguo 23/06/2009, 07:55
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: IE8, firefox y safari no funciona

Estas seguro que te encuantra los archivos htm?

prueba poniendo los path absolutos,

Código javascript:
Ver original
  1. ajax.open("GET", "http://www.tudominio.com/folder/Galeria/galeria.htm",true);

También te recomiendo que instales el complemento firebug de firefox.
Este te indicara concretamente que esta pasando.
Si te lo instalas en la parte de abajo a la derecha (Navegador Firefox) te aparecerá como una especie de insecto. Si esta en blanco y negro es que para ese site no esta "debuggeando". Pinchas en el insecto y buscas la pestaña consola para habilitarlo.
Luego en esta misma pestaña puedes ver todos las procesos ajax que se lanzan, las respuestas, si hay error 404 o 500 (linea en rojo) asi com los errores javascript, etc. Es de gran ayuda...

Saludos,
__________________
Si quieres puedes y si puedes debes. Imposible is nothing!!!
  #7 (permalink)  
Antiguo 24/06/2009, 09:26
 
Fecha de Ingreso: mayo-2008
Mensajes: 19
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: IE8, firefox y safari no funciona

ook. Gracias, voy a probar a ver
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 18:26.