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

Problema con Ajax en Firefox

Estas en el tema de Problema con Ajax en Firefox en el foro de Frameworks JS en Foros del Web. Hola a todos, antes de nada y como siempre agradecer el cable del foro. Mi gran dilema gira como siempre entorno al uso de javas ...
  #1 (permalink)  
Antiguo 16/07/2008, 04:41
 
Fecha de Ingreso: junio-2008
Mensajes: 12
Antigüedad: 16 años, 6 meses
Puntos: 0
Problema con Ajax en Firefox

Hola a todos, antes de nada y como siempre agradecer el cable del foro.
Mi gran dilema gira como siempre entorno al uso de javas en Firefox, esto pasa por querer hacer web totalmente compatibles ;)
Tengo el siguiente script, la cuestión es que la web tiene muchos videos en su página web, por lo que, cuándo se abre pesa una barbaridad, no quieren organizarlo de otra manera así que he fabricado una pequeña trampa, cargo un .gif del mismo tamaño con la barra del video de quicktime y le hago un link ajax al video, así, cuando pinchan al gif automáticamente se pone a cargar el video y no antes, lo que agiliza el tema. Funciona en los otros navegadores menos en Firefox y en IE para Mac Os, no se porque, os dejo aquí el .js.
Código:
function nuevoAjax(){
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;
}
function cargarContenido(pagina1){
 var contenedor;
 contenedor = document.getElementById('contenedor');
 ajax=nuevoAjax();

 ajax.open("GET", pagina1,true);

ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
 contenedor.innerHTML = ajax.responseText
}
}
ajax.send(null)
}
Y aquí la llamada que le hago, vereís que es un .html, esto es porqué no puedo cargar directamente el video así que lo meto dentro de un html pelao con el video dentro, me sirve de contenedor.
Código HTML:
<a href="JavaScript:cargarContenido('video1.html')"> 
Gracias de antemano.
  #2 (permalink)  
Antiguo 16/07/2008, 10:47
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Respuesta: Problema con Ajax en Firefox

Hola:

No te has planteado usar iframes para mostrar los videos... ... En una ocasión me propuse algo parecido con mp3's y usando iframes me ha ido bien... la página en cuestión: Música en la web... creo que detallo debidamente los pasos a seguir en la propia página.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 17/07/2008, 14:47
 
Fecha de Ingreso: junio-2008
Mensajes: 12
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Problema con Ajax en Firefox

Gracias Caricatos, tiene buena pinta, lo miro y te digo algo
  #4 (permalink)  
Antiguo 17/07/2008, 15:27
 
Fecha de Ingreso: octubre-2003
Mensajes: 18
Antigüedad: 21 años, 2 meses
Puntos: 1
Respuesta: Problema con Ajax en Firefox

yo, solución no tengo. Lo único que te puedo recomendar es que utilices un estándar siempre que puedas, frente a innnerHTML que es propietario by micrososft y de estándar nada de nada.
  #5 (permalink)  
Antiguo 25/07/2008, 04:20
 
Fecha de Ingreso: junio-2008
Mensajes: 12
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Problema con Ajax en Firefox

Gracias a los dos por vuestras respuestas y disculpar el tiempo que he tardado en contestar.
La verdad es que necesitaba que fuese algo sencillo para que otra persona puediese subir los videos de una manera más automática por eso elegí este sistema en lugar de los iframes.

Mirando temas de utilización de estándars no pude resolverlo por el innerHTML frente al DOM, pero si que ví que
Código:
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
era lo primero que me daba error en el Firebug, lo cambié por
Código:
xmlhttp = new XMLHttpRequest();
y ahora funciona todo correctamente. Dejo el código final por si le pudiese ser útil a alguien.
Código:
function nuevoAjax(){
var xmlhttp=false;
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
 try {
 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 } catch (E) {
 xmlhttp = false;
 }
 }

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
 xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function cargarContenido(pagina1, nombre){
 var contenedor;
 contenedor = document.getElementById(nombre);
 ajax=nuevoAjax();

 ajax.open("GET", pagina1,true);

ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
 contenedor.innerHTML = ajax.responseText
}
}
ajax.send(null)
}
Gracias de nuevo!
  #6 (permalink)  
Antiguo 25/07/2008, 13:50
 
Fecha de Ingreso: octubre-2003
Mensajes: 18
Antigüedad: 21 años, 2 meses
Puntos: 1
Respuesta: Problema con Ajax en Firefox

Si era ésto, lo fino sería:

Código:
	var xmlhttp = false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
	  		xmlhttp = new ActiveXObject("Microsft.XMLHTTP");
		} catch (e) {
		 	try {
				xmlhttp = new XMLHttpRequest();
			} catch (e) {
					xmlhttp = false;			
			}
		}
	}
- 1 sería para IE con una máquina virtual superior a 5.0
- 2 continúa sigue siendo para IE, pero para versiones inferiores a la 5.0
- 3 para otros navegadores como Mozilla, por ejemplo.

si no creamos el object con ninguna de las anteriores, dejamos la variable a false.

Última edición por clodoviro; 25/07/2008 a las 13:51 Razón: corrijo código.
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:12.