2009-12-02 11 views
2

J'essaie de développer un plug-in JQuery qui va accéder à un flux XML extérieur et afficher les résultats. Voici ce que j'ai jusqu'à présent:JQuery Plugin Help

HTML tête Inclure

<script language="javascript" src="jquery.rss.js" type="text/javascript"></script> 

JQuery Prêt

<script type="text/javascript"> 
    $(document).ready(function() { 
    $("#rss").rss({count:6,loading_text:"loading"}); 
    }); 
</script> 

Plugin (jquery.rss.js)

(function($) { 

    $.fn.rss = function (o) { 
     var s = { 
      count: 6, 
      loading_text: null, 
     }; 

     if(o) $.extend(s,o); 
     return this.each (function() { 
      var list = $('<ul class="rss">').appendTo(this); 
      var loading = $('<p class="desc"><center><img src="loading.gif" height="19" width="18" border="0"><br>'+s.loading_text+'</center></p>'); 
      var items = 0; 
      var url = 'http://www.example.com/feed.xml; 
      if (s.loading_text) $(this).append(loading); 

      $.get(url,{},function(data){ 
       if (s.loading_text) loading.remove();  
       $('forecastday',data).each(function(i){ 
        var title = $(this).find("title").text(); 
        var description = $(this).find("description").text(); 

        list.append('<li>' + title + ' - ' + description + '</li>'); 

        items++; 
        if(items == s.count) last; 
       }); 
      }); 
     }); 
    } 

})(jQuery); 

Tout semble être travailler correctement jusqu'à ce que j'essaie de faire le $ .get à quel point rien ne semble être retourné. J'ai vérifié en utilisant alert() que l'URL correcte est appelée à partir de la requête $ .get.

J'espère que je ne suis pas loin et un gourou JQuery peut indiquer où je vais mal. Merci d'avance pour votre aide!

Répondre

1

Vous ne pouvez pas effectuer de requêtes ajax interdomaine. Développez un proxy côté serveur (déployé sur le même hôte) qui achemine votre demande vers wunderground ou recherche l'API qui prend en charge JSONP.

Voir aussi - API to get weather based on longitude and latitude coordinates

+0

Alors, comment les gens tirent-ils les URL de flux RSS et les affichent en ligne en utilisant JavaScript? N'accède-t-on pas au fichier XML du flux RSS à une demande inter-domaines? –

+0

Avez-vous des exemples de ces sites? Je suis sûr qu'ils utilisent l'une des techniques ci-dessus. Voici un article qui l'explique en détail - http://developer.yahoo.com/javascript/howto-proxy.html –

+0

Vous avez raison. J'ai créé un proxy en utilisant mod_rewrite et il semble avoir fait le voyage. Merci de m'indiquer dans la bonne direction! –

1

Vérifiez ce plugin jQuery: jdigiclock. Il utilise un proxy pour obtenir et analyser les données XML et le sert dans le script jQuery. Je pense que c'est la même chose que vous cherchez.