Foros del Web » Programando para Internet » Javascript »

Problemas con ajax usando IE

Estas en el tema de Problemas con ajax usando IE en el foro de Javascript en Foros del Web. Hola a todos. Estoy usando ajax en una pagina web para paginar un blog de noticias muy sencillo. El programa funciona sin ninguna novedad en ...
  #1 (permalink)  
Antiguo 14/11/2011, 06:06
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Problemas con ajax usando IE

Hola a todos. Estoy usando ajax en una pagina web para paginar un blog de noticias muy sencillo. El programa funciona sin ninguna novedad en firefox, chrome y opera pero molesta en IE. Cuando lo probe en local la pagina en IE deja cargar sin problemas, pero cuando uno trata de pasar de noticias se queda intentando cargar la siguiente pagina y se ve un icono abajo de advertencia que dice error en el script en el tiempo de ejecución y pilla que existe un error en la ultima linea de mi script que coincide con el final de la caja que contiene todo el contenido de mi pagina web. Como cosa para comentar cuando cree el archivo en dreaweaver decia que tenia un problema de expansión de cajas y que afecta a internet explorer 6. No se si exista alguna incompatibilidad entre ajax, estilos CSS e IE a la hora de expander dinamicamente las cajas contenedoras de una noticia pero es mi mayor sospecha de momento.

Si alguien le ha pasado algo similar y me puede dar algunas luces de como solucionarlo se lo agradeceria mucho.
  #2 (permalink)  
Antiguo 14/11/2011, 06:22
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Problemas con ajax usando IE

Hola:

tendríamos que ver el código, pero si es problema de ie6 nada más, supongo que podrías despreocuparte, aunque creo que con esa versión ya soportaba Ajax.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 14/11/2011, 06:45
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Problemas con ajax usando IE

Esta es la función javascript que maneja el ajax

Código HTML:
function objetoAjax(){
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  return xmlhttp;
}

function Pagina(nropagina){
 //donde se mostrará los registros
 divContenido = document.getElementById('contenido');
 
 ajax=objetoAjax();
 //uso del metodo GET
 //indicamos el archivo que realizará el proceso de paginar
 //junto con un valor que representa el nro de pagina
 ajax.open("GET", "paginador.php?pag="+nropagina);
 ajax.onreadystatechange=function() {
	    if(ajax.readyState==1){
                       divContenido.innerHTML = '<img src="ajax-loader.gif" border="0"/>Cargando, espere por favor...';
                        //modificamos el estilo de la div, mostrando una imagen de fondo
                       }
  if (ajax.readyState==4) {
   //mostrar resultados en esta capa
   divContenido.innerHTML = ajax.responseText
  }
 }
 //como hacemos uso del metodo GET
 //colocamos null ya que enviamos 
 //el valor por la url ?pag=nropagina
 ajax.send(null)
}

Esta es la que se encarga de hacer la paginacion de las hojas

Código PHP:
<?php
 
require('conexion.php');
 
$RegistrosAMostrar=1;

 
//estos valores los recibo por GET
 
if(isset($_GET['pag'])){
  
$RegistrosAEmpezar=($_GET['pag']-1)*$RegistrosAMostrar;
  
$PagAct=$_GET['pag'];
  
//caso contrario los iniciamos
 
}else{
  
$RegistrosAEmpezar=0;
  
$PagAct=1;
 }

 
$Resultado=mysql_query("SELECT * FROM noticias ORDER BY idNoticias DESC LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$con);
 echo 
"<table border='0' cellspacing='0' cellpadding='0' >";
 while(
$MostrarFila=mysql_fetch_array($Resultado)){
  echo 
"<tr>";
  echo 
"<td class='titulo'>".$MostrarFila['titulo']."</td>";
  echo 
"</tr>";
     echo 
"<tr>";
     echo 
"<td><hr class='titulo'/></td>";
     echo 
"</tr>";
   echo 
"<tr>";
  echo 
"<td class='parrafo'>".$MostrarFila['contenido']."</td>";
  echo 
"</tr>";
 }
 echo 
"</table>";

 
//******--------determinar las páginas---------******//
 
$NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM noticias",$con));
 
$PagAnt=$PagAct-1;
 
$PagSig=$PagAct+1;
 
$PagUlt=$NroRegistros/$RegistrosAMostrar;

 
//verificamos residuo para ver si llevará decimales
 
$Res=$NroRegistros%$RegistrosAMostrar;
 
// si hay residuo usamos funcion floor para que me
 // devuelva la parte entera, SIN REDONDEAR, y le sumamos
 // una unidad para obtener la ultima pagina
 
if($Res>0$PagUlt=floor($PagUlt)+1;
 
 
//desplazamiento
 
echo "<a onclick=\"Pagina('1')\" class='enlaces' href='#inicio'>Primero</a> ";
 if(
$PagAct>1) echo "<a onclick=\"Pagina('$PagAnt')\" class='enlaces' href='#inicio'>Anterior</a> ";
 if(
$PagAct<$PagUlt)  echo " <a onclick=\"Pagina('$PagSig')\" class='enlaces' href='#inicio'>Siguiente</a> ";
 echo 
"<a onclick=\"Pagina('$PagUlt')\" class='enlaces' href='#inicio'>Ultimo</a>";
 echo 
"<br/>";

  echo 
"<p><strong class='enlaces'>P&aacute;gina ".$PagAct."/".$PagUlt."</strong></p>";
  echo 
"<p><a class='enlaces' href='#inicio'>Volver al inicio de la p&aacute;gina.</a></p>";
?>

Pues aunque no me gusta usar IE uno tiene uno que pensar en todos los usuarios y tratar de que las paginas sean visibles en lo posible en todos los navegadores. Lo de IE6 no me preocupa en si, pero igual como la versión que uso de IE para pruebas es la 8 y esa la usa mucha gente me parece extraño que no sirva. La pagina si carga, pero si se intenta pasar de noticia empieza a molestar.

Gracias de antemano por la colaboración. Quedo pendiente de cualquier comentario.
  #4 (permalink)  
Antiguo 14/11/2011, 17:41
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Problemas con ajax usando IE

Hola: Acabo de probar el código en la red y no en local y me bota el siguiente error:

Error desconocido en tiempo de ejecución.

linea 30 caracter 4:

Y cuando verifico ocurre que se queda parado en esta linea:

Código HTML:
if (ajax.readyState==4) {
Es decir que nunca llega a cargarse la pagina y se queda indefinidamente intentando cargar el contenido. Me parece muy raro por cuanto en los demas navegadores funciona sin problemas. De verdad agradezco si me pudieran dar una guia o colaboración de por donde podria mirar alguna posible solución. Gracias por su colaboración.
  #5 (permalink)  
Antiguo 14/11/2011, 17:56
 
Fecha de Ingreso: septiembre-2007
Mensajes: 76
Antigüedad: 16 años, 7 meses
Puntos: 2
Respuesta: Problemas con ajax usando IE

No estoy seguro, pero que creo que IE no acepta declaraciones de variables si no vienen acompañadas de la palabra reservada var. Prueba colocando en la funcion objetoAjax var xmlhttp de esta forma

Código:
function objetoAjax(){
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  return xmlhttp;
}
  #6 (permalink)  
Antiguo 14/11/2011, 18:10
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Problemas con ajax usando IE

Gracias por tu colaboración. Acabo de declarar la variable pero igual sigue sin funcionar. No se si el error se deba a alguna configuración del navegador en concreto. ¿Alguna otra idea?

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 02:05.