Foros del Web » Programando para Internet » Javascript »

AJAX funciona solo después de recargar la página

Estas en el tema de AJAX funciona solo después de recargar la página en el foro de Javascript en Foros del Web. Que tal maestros, a continuación mi pregunta. Utilizo AJAX para que al hacer click sobre un vínculo, cargar un archivo .htm en un <div> de ...
  #1 (permalink)  
Antiguo 02/05/2012, 14:49
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 3 meses
Puntos: 22
AJAX funciona solo después de recargar la página

Que tal maestros, a continuación mi pregunta.

Utilizo AJAX para que al hacer click sobre un vínculo, cargar un archivo .htm en un <div> de la página actual, pueden ver la página en el siguiente enlace:

http://www.yucatanproperties.com/prueba.php


En todos los navegadores funciona bien, pero en IE/8 sucede los siguiente:

Cuando se carga por pirmera vez la página, al hacer click sobre el vínculo no se carga el archivo y el navegador muestra el siguiente error:

Cita:
Object doesn't support this property or method
funciones_ajas.js
Línea: 4
Código: 0
Carácter: 9
Sin embargo, si actualizo la página, el vínculo funciona perfectamente y se carga el archivo externo en el <div>.

Para confundirme todavía más, este comprtamiento extraño se observa cuando la página usa codificación utf-8, si utiliza codificación iso-8859-1 funciona bién desde la primera vez que se carga la página.

Agradezco desde ahora cualquer orientación ó ayuda para solucionar éste error, a continuación pongo los códigos de los archivos.

Página con el vínculo:

Cita:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script language="javascript" src="funciones_ajas.js"> </script>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body>
<a href="#" onClick="getData('saludo.htm', 'mostrar')">VINCULO</a>
<div id="mostrar"></div>

</body>
</html>
Página que se debe cargar en el <div> (saludo.htm)
Cita:
ESTE ES EL ARCHIVO DE SALUDO
Archivo con la funcion AJAX (funciones_ajas.js)
Cita:
var XMLHttpRequestObject = false;

if (window.XMLHttpRequest) {
XMLHttpRequestObject = new XMLHttpRequest();
} else if (window.ActiveXObject) {
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}

function getData(dataSource, divID)
{
if(XMLHttpRequestObject) {
var obj = document.getElementById(divID);
XMLHttpRequestObject.open("GET", dataSource);

XMLHttpRequestObject.onreadystatechange = function()
{
if (XMLHttpRequestObject.readyState == 4 &&
XMLHttpRequestObject.status == 200) {
obj.innerHTML = XMLHttpRequestObject.responseText;
}
}

XMLHttpRequestObject.send(null);
}
}
Saludos
  #2 (permalink)  
Antiguo 02/05/2012, 15:06
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 3 meses
Puntos: 22
Respuesta: AJAX funciona solo después de recargar la página

Resuelto!

Despuès de andar moviendo a prueba y error logré solucionarlo, aquí les dejo la solución que encontré por si a alguien le sirve.

El truco era simplemente cargar la función AJAX de javaScript DESPUES de especificar la codificación de la página, tan simple como lo siguiente:

Cita:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language = "javascript" src="../funciones_ajas.js"> </script>
Y santo remedio, espero les sea útil.

Saludos.

Etiquetas: ajax
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 14:39.