Lector de feeds RSS 100% Javascript

Después del artículo de HTTPWebRequest, he decidido hacer una mini demostración de sus posibilidades.

El siguiente script, escrito 100% en Javascript, es capaz de procesar los titulares de cualquier feed RSS:

<script language="Javascript">
function GetRSS (psUrl)
{
var oHttp=false;
/*@cc_on @*/
/*@if (@_jscript_version>=5)
{
var asParsers=['Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0',
'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'];
for (var iCont=0; ((!oHttp) && (iCont<asParsers.length)); iCont++)
{
try
{
oHttp=new ActiveXObject(asParsers[iCont]);
}
catch(e)
{
oHttp=false;
}
}
}
@end @*/
if ((!oHttp) && (typeof XMLHttpRequest!='undefined'))
{
oHttp=new XMLHttpRequest();
}
oHttp.open('GET', psUrl, false);
oHttp.send(null);
sDatos=oHttp.responseText + ' ';
iCont=sDatos.indexOf('<item>', 0);
while (iCont!=-1)
{
sTitulo=sDatos.substring(sDatos.indexOf('<title>', iCont)+7,
sDatos.indexOf('</title>', iCont));
sLink=sDatos.substring(sDatos.indexOf('<link>', iCont)+6,
sDatos.indexOf('</link>', iCont));
document.write('<a href="' + sLink + '" target="_blank">' +
sTitulo + '</a><br>');
iCont=sDatos.indexOf('<item>', iCont+1);
}
}
GetRSS('http://www.javiergutierrezchamorro.com/rss.php');
</script>

En efecto, el código sería mejorable de muchas maneras, por ejemplo haciendo la lectura de forma asíncrona, o utilizando expresiones regulares para obtener los atributos del artículo. Todo esto se deja como labor al lector. 🙂

Podéis incrustar el código en vuestras páginas, solamente es necesario copiar de <script language="Javascript"> hasta </script> inclusive, y cambiar el parámetro de llamada a GetRSS por la URL del feed que nos interese, y automáticamente aparecerán los titulares con su respectivo enlace donde hayáis puesto el código.

Por restricciones de seguridad, solamente es posible acceder a feeds remotos, que están en el mismo dominio donde esté alojada nuestra página.

Descargar get_rss.html (2 Kb.).

4 comentarios en “Lector de feeds RSS 100% Javascript”

  1. Sería preferible usar para incrustarlo <script type="application/x-javascript"> en lugar de <script language="Javascript">, por razones de apego a los estándares web.

    Por cierto, no comprendo completamente lo que significa esto: Por restricciones de seguridad, solamente es posible acceder a feeds remotos, que están en el mismo dominio donde esté alojada nuestra página. Parece, no estoy seguro, un contrasentido.

    Saludos

  2. Tienes razón en que es mucho mejor incrustarlo de esa manera, lo que ocurre es que como soy de la vieja escuela, a veces se me escapa la otra…

    Quizás no lo he explicado demasiado bien. Lo que quería dar a entender, es que una vez has colgado la página en el servidor (remoto), solamente tiene acceso permitido a archivos que están en ese mismo dominio, y dependiendo del navegador, también de ese mismo directorio.

    Si lo pruebas desde tu disco duro (local), es capaz de acceder a cualquier archivo, independientemente de donde esté.

Deja un comentario