Comunidad de diseño web y desarrollo en internet online

Problema con lector RSS

Citar            
MensajeEscrito el 20 Mar 2009 10:56 pm
Hola, he leido y puesto en practica el tutorial sobre como crear un lector RSS con AJAX de Cristalab, el problema es que no sale la prueba. Miren como se queda, y como se debería de quedar.

El lector se compone de estos archivos:


  • blog.php
  • rss.html
  • style.css
  • js

    • rss_header.js


Bueno, espero que entienda la estructura. Bueno, ahora, este es el codigo del JS:

Código :

//variable global
var i=1;
//URI: dirección del RSS 2.0 (funciona solamente con Wordpress)
var URL='blog.php';
//función: llamarasincrono('URI', 'div-id',i);
llamarasincrono(URL, 'rss',i);
//Esta función cargará la información
function llamarasincrono(url, id_contenedor,N) {
var pagina_requerida = false
if (window.XMLHttpRequest) {// Si es Mozilla, Safari, Etc..
pagina_requerida ? new XMLHttpRequest ()
} else if (window.ActiveXObject){// pero si IE
try {
pagina_requerida = new ActiveXObject(Msxml12.XMLHTTP")
}
catch (e){//Si es una versión antigua
try {
pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
} else
return false
pagina_requerida.onreadystatechange=function(){//función de respuesta
cargarpagina(pagina_requerida, id_contenedor,N)
}
pagina_requerida.open('GET', url, true) //asignamos los metodos open y send
pagina_requerida.send(null)
}
//todo es correcto y ha llegado el momento de poner la información requerida
//en su sitio en la pagina XHTML
function  cargarpagina(pagina_requerida, id_contenedor,N){
if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1)){
//usamos la propiedad responseXML: devuelve datos por el servidor en forma de documento XML
var xml = pagina_requerida.responseXML;
//encontramos el total de items en el RSS
var limit = sml.getElementsByTagName('item').length;
//Boton siguiente
//i es la variable que irá incrementandose
var next = "<next><a href=\"javascript:llamarasincrono(URI, 'rss',i);\">Siguiente</a></next>";
//creamos el string donde irán las etiquetas y los valores
var rss = "";
//for de 2 ciclos, para mostrar 2 entradas a la vez
for (var 1=N;1<=N+1;1++){
//cogemos el titulo del primer item, luego del segundo, y así.
var title = xml.getElementsByTagName('title').item(1).firstChild.data;
var url = xml.getElementsByTagName('link').item(1).firstChild.data;
var pubDate = xml.getElementsByTagName('pubDate').item(1).firstChild.data;
var description = xml.getElementsByTagName('description').item(1).firstChild.data;
//si la longitud de la entrada es mayor de 200 caracteres la cortamos y le ponemos un enlace
if(description.length>200) { description = description.substr(0,200)+"...<br/><enlace><a href=\"" + url + "\">Leer más...</a></enlace><br/><br/>"; }else description=description+"<br/><br/>";
//esto sirve para cortar el +0000 de la fecha en WordPress
var date = pubDate.split(" +");
//sumamos las variables a nuestro string
rss = rss+"<fecha>"+date[0]+"<fecha><br/><titulo>"+title"</titulo><br/><description>"+description+"</description>";
if (limit==1)
//si nos pasamos del límite, la cortamos
break;
}
//incrementamos la variable global
i=i+2;
//si nos pasamos del límite, volvemos a empezar
if (i>limit)
i=1;
//metemos el string + el boton en el div-id que corresponde
document.getElementById(id_contenedor).innerHTML=rss+next;
//un pequeño mensaje para avisar que se esta cargando la información
}else if (pagina_requerida.readyState == 1)
document.getElementById(id_contenedor).innerHTML="<load>Cargando...</load>"
}


Y este el PHP:

Código :

<?php
//aquí va la URL del RSS
$filename = "http://todo-minijuegos.com/blog/index.php";
header("Content-type:text/xml");
readfile ($filename);
?>

Os pongo solamente esos archivos, ya que creo que es en ello

Saludos

Por Distriker

Claber

955 de clabLevel

9 tutoriales

 

Las Palmas De Gran Canarias

firefox
Citar            
MensajeEscrito el 21 Mar 2009 06:24 am
El código javascript no lo he checado pero según veo el problema puede ser tu archivo php. Estás creando un xml no válido.

Pruebalo así:

Código PHP :

//aquí va la URL del RSS
$filename = "http://feedproxy.google.com/Tmj-ElBlog";
header("Content-type:text/xml");
readfile ($filename);

Por ivanfc0o

Claber

391 de clabLevel

3 tutoriales

Genero:Masculino  

Hardcore UI

opera
Citar            
MensajeEscrito el 21 Mar 2009 12:12 pm
Bien, muchas gracias Ivanfc, ahora el PHP me anda bien :D.

En FDW David el Grande revisó el codigo y encontró un error un tanto obvio, mira lo que dijo:

David el Grande escribió:

Primero, estás enlazando a un archivo .js incorrecto (no existe el archivo al que enlazas), y segundo, tienes un error de sintaxis en la línea 14 (que resulta obvio en el coloreado del código), te falta abrir el String.


Y si, me faltaba algo muy obvio, mira la linea 14, exactamente esta:

pagina_requerida = new ActiveXObject(Msxml12.XMLHTTP")

Falta esto ":

pagina_requerida = new ActiveXObject("Msxml12.XMLHTTP")

Claro, y yo no me di cuenta de que el codigo se veia mal, ahora si se ve bien el codigo, con sus respectivos colores, mira:

Código Javascript :

pagina_requerida = new ActiveXObject("Msxml12.XMLHTTP")


Peros sigue habiendo un error, no carga :(, no se que le pasa.

Muchas gracias Ivan, pero sigo esperando respuestas en los dos ;-).

Saludos

Por Distriker

Claber

955 de clabLevel

9 tutoriales

 

Las Palmas De Gran Canarias

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.