Script javascript RSS


jeromax
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Inscription: 12 Nov 2003

Script javascript RSS

Message le Jeu Nov 17, 2005 11:21

Salut
je cherche un (LE) script javascript le mieux (le plus simple) pour lire des flux rss.
Vous avez quelques adresses?

Lymf
WRInaute discret
WRInaute discret
 
Messages: 189
Inscription: 12 Mai 2005

Message le Jeu Nov 17, 2005 11:28

pourquoi javascript?


jeromax
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Inscription: 12 Nov 2003

Message le Jeu Nov 17, 2005 11:34

C'est pour éviter des appels au serveur.
Et c'est une page perso, elle ne sera jamais référencée... :wink:

pascal_
WRInaute discret
WRInaute discret
 
Messages: 97
Inscription: 24 Sep 2004

Message le Jeu Nov 17, 2005 12:15

jeromax a écrit:C'est pour éviter des appels au serveur.
Et c'est une page perso, elle ne sera jamais référencée... :wink:


Rien compris.

Déjà, dans javascript, je ne crois pas que tu puisses ouvrir un fichier (rss ou non).


Sinon, il y a un bon tuto là :
http://www.webrankinfo.com/analyses/art ... cation.php


jeromax
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Inscription: 12 Nov 2003

Message le Jeu Nov 17, 2005 12:21

Je ne vois pas pourquoi on ne pourrait pas ouvrir un flux rss en javascript...
Il est très bien le tuto d'Olivier, mais c'est du php....

db7
WRInaute discret
WRInaute discret
 
Messages: 76
Inscription: 21 Oct 2004

Message le Jeu Nov 17, 2005 12:36

Bonjour à tous,
Dans certain cas, un javascript peut être nécessaire quand, par exemple, dans une entreprise vous disposez d'un intranet avec un serveur non relié à internet pour des raisons de sécurité, seuls les postes clients ont un accès internet.

J'ai du bricoler ce code Javascript pour résoudre ce problème. Uniquement pour IE, incomptaible avec les autres navigateurs.
Dans le head :

Code: Tout sélectionner
<SCRIPT LANGUAGE="JavaScript">
function readRSS(URI) {
   if(window.ActiveXObject) {
      var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async=false;
      while(xmlDoc.readyState!=4) document.write('Loading...');
   }
   else if(document.implementation&&document.implementation.createDocument)
      xmlDoc=document.implementation.createDocument("","doc",null);
   xmlDoc.load(URI);
   items=xmlDoc;

   function verify() {if(xmlDoc.readyState!=4) return false;}

   function formatRSS() {
      //var items_count=3;
                           var items_count=items.getElementsByTagName('item').length;
      var pubDate=new Array(), date=new Array, link=new Array(), title=new Array(), description=new Array(), guid=new Array();

      for(var i=0; i<items_count; i++) {
         if(items.getElementsByTagName('item')[i].getElementsByTagName('pubDate').length==1)
            pubDate[i]=items.getElementsByTagName('item')[i].getElementsByTagName('pubDate')[0];
         if(items.getElementsByTagName('item')[i].getElementsByTagName('dc:date').length==1)
            date[i]=items.getElementsByTagName('item')[i].getElementsByTagName('dc:date')[0];
         if(items.getElementsByTagName('item')[i].getElementsByTagName('link').length==1)
            link[i]=items.getElementsByTagName('item')[i].getElementsByTagName('link')[0];
         if(items.getElementsByTagName('item')[i].getElementsByTagName('guid').length==1)
            guid[i]=items.getElementsByTagName('item')[i].getElementsByTagName('guid')[0];
         if(items.getElementsByTagName('item')[i].getElementsByTagName('title').length==1)
            title[i]=items.getElementsByTagName('item')[i].getElementsByTagName('title')[0];
         if(items.getElementsByTagName('item')[i].getElementsByTagName('description').length==1)
            description[i]=items.getElementsByTagName('item')[i].getElementsByTagName('description')[0];
      }

      if((description.length==0)&&(title.length==0)) return false;

      document.write('<a href="'+xmlDoc.getElementsByTagName('link')[0].firstChild.nodeValue+'">'+xmlDoc.getElementsByTagName('description')[0].firstChild.nodeValue+'</a> </br>');
      var ws=/\S/;

      for(var i=0; i<items_count; i++) {
         var pubDate_w, title_w, link_w;
         pubDate_w=(pubDate.length>0)?pubDate[i].firstChild.nodeValue:"<i>Date non renseignée</i>";
         if(document.all)
            title_w=(title.length>0)?title[i].text:"<i>Absence de titre</i>";
         else
            title_w=(title.length>0)?title[i].firstChild.nodeValue:"<i>Absence de titre</i>";

         link_w=(link.length>0)?link[i].firstChild.nodeValue:"";
         if(link.length==0) link_w=(guid.length>0)?guid[i].firstChild.nodeValue:"";
         if(title.length>0) title_w=(!ws.test(title_w))?"<i>Absence de titre</i>":title_w;
         if(pubDate.length==0) pubDate_w=(date.length>0)?date[i].firstChild.nodeValue:"<i></i>";
         document.write('<a href="'+link_w+'"><b>'+title_w+'</b></a> <br>');
         if(description.length>0)
            document.write('<font size="-1">'+description[i].firstChild.nodeValue+'</font><br>');
      }
   }

   if(typeof(xmlDoc)!="undefined") {
      if(window.ActiveXObject) formatRSS();
      else xmlDoc.onload=formatRSS;
   }
}
</script>


Dans le corps de la page à l'endroit où vous voulez voir les fils :
Code: Tout sélectionner
<ul>
<script language="JavaScript">
   readRSS("http://www.lemonde.fr/rss/sequence/0,2-3244,1-0,0.xml");
    </script>
</ul>
<ul>
<script language="JavaScript">
   readRSS("http://www.lexpress.fr/getfeedrss.asp?feed=sciences");
</script>
</ul>
<img border="0" src="./images/obslogo90.gif" width="90" height="59">
<ul>
<script language="JavaScript">
   readRSS("http://sciences.nouvelobs.com/rss_sea.xml");
</script>
</ul>


Si ceci peut aider.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités