Analyser le flux RSS avec jQuery

194

Je souhaite utiliser jQuery pour analyser les flux RSS. Cela peut-il être fait avec la bibliothèque jQuery de base prête à l'emploi ou devrai-je utiliser un plugin?

Andy Brudtkuhl
la source
1
Je choisirais github.com/sdepold/jquery-rss - c'est la meilleure option en ce moment, plusieurs options disponibles! :)
Komrath
Pour toute personne atterrissant ici de Google, j'ai dû créer une chose similaire pour une visionneuse de vignettes deviantART. Agréable et simple et facilement extensible: adamjamesnaylor.com/2012/11/05/… . Notez qu'il utilise le lecteur de flux de Google, mais uniquement pour le convertir en JSON.
Adam Naylor

Réponses:

208

AVERTISSEMENT

L'API Google Feed est officiellement obsolète et ne fonctionne plus !


Pas besoin d'un plugin entier. Cela renverra votre RSS en tant qu'objet JSON à une fonction de rappel:

function parseRSS(url, callback) {
  $.ajax({
    url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(url),
    dataType: 'json',
    success: function(data) {
      callback(data.responseData.feed);
    }
  });
}
Andrew Childs
la source
4
J'ai essayé jFeed et cela n'a pas fonctionné, cela fonctionne bien et ne nécessite pas de bibliothèque supplémentaire.
diggersworld
15
soyez conscient ... en utilisant l'API Google, les flux sont mis en cache afin que vous n'obtiendrez pas les derniers et les meilleurs flux.
c0deNinja
3
où est-il mis en cache? comment puis-je supprimer le cache?
Jeg Bagus
39
Ce n'est pas une bonne réponse. Il dépend d'une société tierce [Google] qui maintient son service. Il ne répond pas à la question d'origine ("Analyser RSS avec jQuery") et annonce à la place Google. Que faire si Google supprime ou modifie son API ajax? Votre site Web tombe en panne.
Charles Goodwin
11
@CharlesGoodwin Google vient de supprimer cette API! developers.google.com/feed/?hl=en
GôTô
185

Utilisez jFeed - un plugin jQuery RSS / Atom. Selon les documents, c'est aussi simple que:

jQuery.getFeed({
   url: 'rss.xml',
   success: function(feed) {
      alert(feed.title);
   }
});
Nathan Strutz
la source
2
des exemples d'utilisation dans le monde réel? c'est-à-dire analyser et afficher plutôt qu'alerter. ou est-ce aussi simple que $ ("# results"). append (feed.title)
Andy Brudtkuhl
3
REMARQUE: le téléchargement contient toutes sortes d'excellents exemples
Andy Brudtkuhl
12
Anirudha, vous pouvez peut-être essayer 7-zip? C'est gratuit, open source et ouvre une variété de types de fichiers, y compris tar / gzip.
Nathan Strutz
100
Veuillez noter que la dernière version de ce plugin est disponible sur Github .
Alan H.
3
jFeed ne semble plus être maintenu activement (le dernier changement de note date de 2 ans, et de nombreuses demandes d'extraction ouvertes semblent être ignorées), et ne fonctionne pas avec les versions récentes de jQuery.
Thilo
159

Pour ceux d'entre nous qui viennent à la discussion tardivement, à partir de la version 1.5, jQuery a des capacités d'analyse XML intégrées, ce qui facilite la tâche sans plugins ni services tiers. Il a une fonction parseXml et analysera automatiquement le xml lors de l'utilisation de la fonction $ .get. Par exemple:

$.get(rssurl, function(data) {
    var $xml = $(data);
    $xml.find("item").each(function() {
        var $this = $(this),
            item = {
                title: $this.find("title").text(),
                link: $this.find("link").text(),
                description: $this.find("description").text(),
                pubDate: $this.find("pubDate").text(),
                author: $this.find("author").text()
        }
        //Do something with item here...
    });
});
David Hammond
la source
10
Erreur XmlHttpRequest: l'origine n'est pas autorisée par Access-Control-Allow-Origin
jackocnr
12
@jackocnr, oui, c'est l'inconvénient de cette méthode. Vous ne pouvez pas effectuer de demandes interdomaines à moins d'avoir accès à la définition de l'en-tête Access-Control-Allow-Origin sur le serveur source. Si le serveur prend en charge jsonp, c'est votre meilleur choix. Sinon, vous pouvez utiliser un script proxy au sein de votre domaine pour récupérer le xml, puis appeler ce script au lieu du serveur externe.
David Hammond
Est-ce vraiment la seule réponse qui ne repose pas sur des plugins ou des services externes?
Blazemonger
Pourquoi le $this.find("link").text()retourne toujours une chaîne vide ''?
Jeff Tian
@JeffTian, ​​difficile à dire sans voir votre xml. La raison la plus évidente serait que l'élément <link> est manquant ou vide.
David Hammond
16

jFeed ne fonctionne pas dans IE.

Utilisez zRSSFeed . Je l'ai fait travailler en 5 minutes

Mark Steggles
la source
2
Disponible sur zazar.net/developers/zrssfeed A propos de l'essayer moi-même pour voir comment ça se passe, semble prometteur.
thewinchester
3
BTW, zRssFeed utilise en interne l' API RSS de Google Feed . Donc, si l'on veut faire la mise en page HTML elle-même, il est plus facile de regarder directement à la place.
Ciantic
cinq minutes ou moins :)
Constanta
super cool ... la seule chose est qu'ils fournissaient les objets de flux plutôt que le html entier dans une fonction de rappel que ce serait génial ...
shahil
2
Pour info toute personne souhaitant utiliser ce plugin. Le développeur a publié ce qui suit. "CE PLUGIN EST ARRÊTÉ En raison de la suppression de l'API Google Feeds du service, sur laquelle le plug-in a répondu, il ne sera plus disponible ni pris en charge." Source: zazar.net/developers/jquery/zrssfeed
phanf
16

Mise à jour (15 oct.2019)

J'ai extrait la logique principale de jquery-rss vers une nouvelle bibliothèque appelée Vanilla RSS qui utilise l'API fetch et peut fonctionner sans aucune dépendance supplémentaire:

const RSS = require('vanilla-rss');
const rss = new RSS(
    document.querySelector("#your-div"),
    "http://www.recruiter.com/feed/career.xml",
    { 
      // options go here
    }
);
rss.render().then(() => {
  console.log('Everything is loaded and rendered');
});

Original

Publier:

Vous pouvez également utiliser jquery-rss , qui est fourni avec de jolis modèles et est très facile à utiliser:

$("#your-div").rss("http://www.recruiter.com/feed/career.xml", {
    limit: 3,
    layoutTemplate: '<ul class="inline">{entries}</ul>',
    entryTemplate: '<li><a href="{url}">[{author}@{date}] {title}</a><br/>{shortBodyPlain}</li>'
})

rendements (au 18 septembre 2013):

<div id="your-div">
    <ul class="inline">
    <entries></entries>
    </ul>
    <ul class="inline">
        <li><a href="http://www.recruiter.com/i/when-to-go-over-a-recruiter%e2%80%99s-head/">[@Tue, 10 Sep 2013 22:23:51 -0700] When to Go Over a Recruiter's Head</a><br>Job seekers tend to have a certain "fear" of recruiters and hiring managers, and I mean fear in the reverence and respect ...</li>
        <li><a href="http://www.recruiter.com/i/the-perfect-job/">[@Tue, 10 Sep 2013 14:52:40 -0700] The Perfect Job</a><br>Having long ago dealt with the "perfect resume" namely God's, in a previous article of mine, it makes sense to consider the ...</li>
        <li><a href="http://www.recruiter.com/i/unemployment-benefits-applications-remain-near-5-year-low-decline-again/">[@Mon, 09 Sep 2013 12:49:17 -0700] Unemployment Benefits Applications Remain Near 5-Year Low, Decline Again</a><br>As reported by the U.S. Department of Labor, the number of workers seeking unemployment benefits continued to sit near ...</li>
    </ul>
</div>

Voir http://jsfiddle.net/sdepold/ozq2dn9e/1/ pour un exemple de travail.

sdepold
la source
Gardez à l'esprit que jquery-rss utilise l'API Google Feed qui mettra en cache le flux, ce qui pourrait présenter un problème. Vous pouvez cependant le tromper en ajoutant un paramètre d'URL indésirable: stackoverflow.com/questions/13401936/…
kukabuka
veuillez fournir un exemple pour formater la date sans utilisermoment.js
Purvesh Desai
Vérifiez l'extrait de code suivant gist.github.com/sdepold/d1e5e0e7a66fc77930fe. Il générera quelque chose comme ceci: "<du contenu>, [@ 2015-11-18]"
sdepold
Je voulais juste mentionner que jquery-rss n'utilise pas l'API Google Feed mais un remplacement gratuit appelé Feedr ( github.com/sdepold/feedrapp ) et fonctionne respectivement bien malgré que l'API d'origine soit désactivée.
sdepold
15

Utilisation de JFeed

function getFeed(sender, uri) {
    jQuery.getFeed({
        url: 'proxy.php?url=' + uri,
        success: function(feed) {
            jQuery(sender).append('<h2>'
            + '<a href="'
            + feed.link
            + '">'
            + feed.title
            + '</a>'
            + '</h2>');

            var html = '';

            for(var i = 0; i < feed.items.length && i < 5; i++) {

                var item = feed.items[i];

                html += '<h3>'
                + '<a href="'
                + item.link
                + '">'
                + item.title
                + '</a>'
                + '</h3>';

                html += '<div class="updated">'
                + item.updated
                + '</div>';

                html += '<div>'
                + item.description
                + '</div>';
            }

            jQuery(sender).append(html);
        }    
    });
}

<div id="getanewbrowser">
  <script type="text/javascript">
    getFeed($("#getanewbrowser"), 'http://feeds.feedburner.com/getanewbrowser')
  </script>
</div>
Andy Brudtkuhl
la source
9

Utilisez l'API Google AJAX Feed sauf si vos données RSS sont privées. C'est rapide, bien sûr.

https://developers.google.com/feed/

yogman
la source
1
Une bonne idée, mais ne fonctionne pas lorsque vous êtes à l'intérieur d'un pare-feu qui nécessite une authentification proxy à l'aide d'une boîte de dialogue.
thewinchester
le flux google est obsolète et n'est plus pris en charge.
vikas etagi
8

UPDATE [ 4/25/2016 ] Maintenant une meilleure version écrite et entièrement prise en charge avec plus d'options et de capacités hébergées sur GitHub.jQRSS

J'ai vu la réponse sélectionnée par Nathan Strutz , cependant, le lien vers la page du plugin jQuery est toujours en baisse et la page d'accueil de ce site ne semble pas se charger. J'ai essayé quelques autres solutions et j'ai trouvé la plupart d'entre elles non seulement obsolètes, mais FACILES ! J'ai donc jeté mon chapeau là-bas et créé mon propre plugin, et avec les liens morts ici, cela semble être un excellent endroit pour soumettre une réponse. Si vous cherchez cette réponse en 2012 (bientôt en 2013), vous remarquerez peut-être la frustration des liens morts et des anciens conseils comme moi. Ci-dessous un lien vers mon exemple de plugin moderne ainsi que le code du plugin! Copiez simplement le code dans un fichier JS et liez-le dans votre en-tête comme n'importe quel autre plugin. L'utilisation est EXTRÊMEMENT EZ!

jsFiddle

Plugin Code
2/9/2015 - mise à jour attendue depuis longtemps à vérifier consoleavant de lui envoyer des commandes! Devrait aider avec les anciens problèmes IE.

(function($) {
    if (!$.jQRSS) { 
        $.extend({  
            jQRSS: function(rss, options, func) {
                if (arguments.length <= 0) return false;

                var str, obj, fun;
                for (i=0;i<arguments.length;i++) {
                    switch(typeof arguments[i]) {
                        case "string":
                            str = arguments[i];
                            break;
                        case "object":
                            obj = arguments[i];
                            break;
                        case "function":
                            fun = arguments[i];
                            break;
                    }
                }

                if (str == null || str == "") {
                    if (!obj['rss']) return false;
                    if (obj.rss == null || obj.rss == "") return false;
                }

                var o = $.extend(true, {}, $.jQRSS.defaults);

                if (typeof obj == "object") {
                    if ($.jQRSS.methods.getObjLength(obj) > 0) {
                        o = $.extend(true, o, obj);
                    }
                }

                if (str != "" && !o.rss) o.rss = str;
                o.rss = escape(o.rss);

                var gURL = $.jQRSS.props.gURL 
                    + $.jQRSS.props.type 
                    + "?v=" + $.jQRSS.props.ver
                    + "&q=" + o.rss
                    + "&callback=" + $.jQRSS.props.callback;

                var ajaxData = {
                        num: o.count,
                        output: o.output,
                    };

                if (o.historical) ajaxData.scoring = $.jQRSS.props.scoring;
                if (o.userip != null) ajaxData.scoring = o.userip;

                $.ajax({
                    url: gURL,
                    beforeSend: function (jqXHR, settings) { if (window['console']) { console.log(new Array(30).join('-'), "REQUESTING RSS XML", new Array(30).join('-')); console.log({ ajaxData: ajaxData, ajaxRequest: settings.url, jqXHR: jqXHR, settings: settings, options: o }); console.log(new Array(80).join('-')); } },
                    dataType: o.output != "xml" ? "json" : "xml",
                    data: ajaxData,
                    type: "GET",
                    xhrFields: { withCredentials: true },
                    error: function (jqXHR, textStatus, errorThrown) { return new Array("ERROR", { jqXHR: jqXHR, textStatus: textStatus, errorThrown: errorThrown } ); },
                    success: function (data, textStatus, jqXHR) {  
                        var f = data['responseData'] ? data.responseData['feed'] ? data.responseData.feed : null : null,
                            e = data['responseData'] ? data.responseData['feed'] ? data.responseData.feed['entries'] ? data.responseData.feed.entries : null : null : null
                        if (window['console']) {
                            console.log(new Array(30).join('-'), "SUCCESS", new Array(30).join('-'));
                            console.log({ data: data, textStatus: textStatus, jqXHR: jqXHR, feed: f, entries: e });
                            console.log(new Array(70).join('-'));
                        }

                        if (fun) {
                            return fun.call(this, data['responseData'] ? data.responseData['feed'] ? data.responseData.feed : data.responseData : null);
                        }
                        else {
                            return { data: data, textStatus: textStatus, jqXHR: jqXHR, feed: f, entries: e };
                        }
                    }
                });
            }
        });
        $.jQRSS.props = {
            callback: "?",
            gURL: "http://ajax.googleapis.com/ajax/services/feed/",
            scoring: "h",
            type: "load",
            ver: "1.0"
        };
        $.jQRSS.methods = {
            getObjLength: function(obj) {
                if (typeof obj != "object") return -1;
                var objLength = 0;
                $.each(obj, function(k, v) { objLength++; })
                return objLength;
            }
        };
        $.jQRSS.defaults = {
            count: "10", // max 100, -1 defaults 100
            historical: false,
            output: "json", // json, json_xml, xml
            rss: null,  //  url OR search term like "Official Google Blog"
            userip: null
        };
    }
})(jQuery);

UTILISATION

//  Param ORDER does not matter, however, you must have a link and a callback function
//  link can be passed as "rss" in options
//  $.jQRSS(linkORsearchString, callbackFunction, { options })

$.jQRSS('someUrl.xml', function(feed) { /* do work */ })

$.jQRSS(function(feed) { /* do work */ }, 'someUrl.xml', { count: 20 })

$.jQRSS('someUrl.xml', function(feed) { /* do work */ }, { count: 20 })

$.jQRSS({ count: 20, rss: 'someLink.xml' }, function(feed) { /* do work */ })

$ .jQRSS ('Rechercher des mots ici au lieu d'un lien', fonction (flux) {/ * fonctionne * /}) // TODO: A besoin d'être corrigé

Les options

{
    count: // default is 10; max is 100. Setting to -1 defaults to 100
    historical: // default is false; a value of true instructs the system to return any additional historical entries that it might have in its cache. 
    output: // default is "json"; "json_xml" retuns json object with xmlString / "xml" returns the XML as String
    rss: // simply an alternate place to put news feed link or search terms
    userip: // as this uses Google API, I'll simply insert there comment on this:
        /*  Reference: https://developers.google.com/feed/v1/jsondevguide
            This argument supplies the IP address of the end-user on 
            whose behalf the request is being made. Google is less 
            likely to mistake requests for abuse when they include 
            userip. In choosing to utilize this parameter, please be 
            sure that you're in compliance with any local laws, 
            including any laws relating to disclosure of personal 
            information being sent.
        */
}
SpYk3HH
la source
5
(function(url, callback) {
    jQuery.ajax({
        url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(url),
        dataType: 'json',
        success: function(data) {
            callback(data.responseData.feed);
        }
    });
})('http://news.hitb.org/rss.xml', function(feed){ // Change to desired URL
    var entries = feed.entries, feedList = '';
    for (var i = 0; i < entries.length; i++) {
        feedList +='<li><a href="' + entries[i].link + '">' + entries[i].title + '</a></li>';
    }
    jQuery('.feed > ul').append(feedList);
});


<div class="feed">
        <h4>Hacker News</h4>
        <ul></ul>
</div>
John Magnolia
la source
5

Je suis d'accord avec @Andrew , utiliser Google est un moyen solide et réutilisable de le faire avec l'énorme avantage que vous obtenez JSON au lieu de XML. Un avantage supplémentaire de l'utilisation de Google en tant que proxy est que les services susceptibles de bloquer votre accès direct à leurs données sont peu susceptibles d'arrêter Google. Voici un exemple d'utilisation du rapport de ski et des données de conditions. Cela a toutes les applications courantes du monde réel: 1) RSS / XML tiers 2) JSONP 3) Nettoyage des chaînes et de la chaîne dans le tableau lorsque vous ne pouvez pas obtenir les données exactement comme vous le souhaitez 4) lors du chargement, ajoutez des éléments à la DOM. J'espère que cela aide certaines personnes!

<!-- Load RSS Through Google as JSON using jQuery -->
<script type="text/javascript">

    function displaySkiReport (feedResponse) {

    // Get ski report content strings
    var itemString = feedResponse.entries[0].content;
    var publishedDate = feedResponse.entries[0].publishedDate;

    // Clean up strings manually as needed
    itemString = itemString.replace("Primary: N/A", "Early Season Conditions"); 
    publishedDate = publishedDate.substring(0,17);

    // Parse ski report data from string
    var itemsArray = itemString.split("/");


    //Build Unordered List
    var html = '<h2>' + feedResponse.entries[0].title + '</h2>';
    html += '<ul>';

    html += '<li>Skiing Status: ' + itemsArray[0] + '</li>';
    // Last 48 Hours
    html += '<li>' + itemsArray[1] + '</li>';
    // Snow condition
    html += '<li>' + itemsArray[2] + '</li>';
    // Base depth
    html += '<li>' + itemsArray[3] + '</li>';

    html += '<li>Ski Report Date: ' + publishedDate + '</li>';

    html += '</ul>';

    $('body').append(html);    

    }


    function parseRSS(url, callback) {
      $.ajax({
    url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(url),
    dataType: 'json',
    success: function(data) {
      callback(data.responseData.feed);
    }
      });
    }

    $(document).ready(function() {              

        // Ski report
        parseRSS("http://www.onthesnow.com/michigan/boyne-highlands/snow.rss", displaySkiReport);

    });

</script>
Dylan Valade
la source
2
Cela ne fonctionnera pas en raison de problèmes interdomaines. Vous avez besoin de JSONP.
gotofritz
1
Ça marche pour moi. L'avez-vous testé? Je suis sûr que Google renvoie jsonp en utilisant le paramètre de rappel et non ajax dataType.
Dylan Valade
Je ne sais pas à quoi servait le downvote. Ce code fonctionne toujours trois ans plus tard. Collez le tout dans la console et vous verrez les conditions de ski (XML) actuelles ajoutées au pied de page de cette page.
Dylan Valade
4

jFeed est quelque peu obsolète, ne fonctionnant qu'avec les anciennes versions de jQuery. Cela fait deux ans qu'il a été mis à jour.

zRSSFeed est peut-être un peu moins flexible, mais il est facile à utiliser et il fonctionne avec la version actuelle de jQuery (actuellement 1.4). http://www.zazar.net/developers/zrssfeed/

Voici un exemple rapide des documents zRSSFeed:

<div id="test"><div>

<script type="text/javascript">
$(document).ready(function () {
  $('#test').rssfeed('http://feeds.reuters.com/reuters/oddlyEnoughNews', {
    limit: 5
  });
});
</script>
Alderete
la source
Pourrait noter que cela ne fonctionne qu'avec des flux non locaux, car il utilise l'API Google Feed (Google doit pouvoir charger le flux xml).
CmdrTallen
2

Je vous conseille d'utiliser FeedEk . Une fois que l'API Google Feed est officiellement obsolète, la plupart des plugins ne fonctionnent pas. Mais FeedEk fonctionne toujours. Il est très facile à utiliser et propose de nombreuses options à personnaliser.

$('#divRss').FeedEk({
   FeedUrl:'http://jquery-plugins.net/rss'
});

Avec options

$('#divRss').FeedEk({
  FeedUrl:'http://jquery-plugins.net/rss',
  MaxCount : 5,
  ShowDesc : true,
  ShowPubDate:true,
  DescCharacterLimit:100,
  TitleLinkTarget:'_blank',
  DateFormat: 'MM/DD/YYYY',
  DateFormatLang:'en'
});
jQP
la source
Je ne sais pas si vous pouvez réellement définir un autre point de terminaison api, mais si vous le pouviez, il y aurait potentiellement la possibilité de remplacer l'api du flux Google par feedrapp: github.com/sdepold/feedrapp (qui est également l'épine dorsale de jquery -rss de nos jours)
sdepold
Cela ne fait pas d'analyse. Il utilise yahooapis pour effectuer l'analyse, puis il affiche simplement le contenu.
David L.
1
<script type="text/javascript" src="./js/jquery/jquery.js"></script>
<script type="text/javascript" src="./js/jFeed/build/dist/jquery.jfeed.pack.js"></script>
<script type="text/javascript">
    function loadFeed(){
        $.getFeed({
            url: 'url=http://sports.espn.go.com/espn/rss/news/',
            success: function(feed) {

                //Title
                $('#result').append('<h2><a href="' + feed.link + '">' + feed.title + '</a>' + '</h2>');

                //Unordered List
                var html = '<ul>';

                $(feed.items).each(function(){
                    var $item = $(this);

                    //trace( $item.attr("link") );
                    html += '<li>' +
                        '<h3><a href ="' + $item.attr("link") + '" target="_new">' +
                        $item.attr("title") + '</a></h3> ' +
                        '<p>' + $item.attr("description") + '</p>' +
                        // '<p>' + $item.attr("c:date") + '</p>' +
                        '</li>';
                });

                html += '</ul>';

                $('#result').append(html);
            }
        });
    }
</script>
Kabuski
la source
Pas une mauvaise réponse, mais malheureusement, vous n'avez pas fait le plus grand travail en collant le code. ;-)
Jusqu'au
0

Utilisez Google Ajax API , mis en cache par Google et tout format de sortie que vous souhaitez.

Échantillon de code; http://code.google.com/apis/ajax/playground/#load_feed

<script src="http://www.google.com/jsapi?key=AIzaSyA5m1Nc8ws2BbmPRwKu5gFradvD_hgq6G0" type="text/javascript"></script>
<script type="text/javascript">
/*
*  How to load a feed via the Feeds API.
*/

google.load("feeds", "1");

// Our callback function, for when a feed is loaded.
function feedLoaded(result) {
  if (!result.error) {
    // Grab the container we will put the results into
    var container = document.getElementById("content");
    container.innerHTML = '';

    // Loop through the feeds, putting the titles onto the page.
    // Check out the result object for a list of properties returned in each entry.
    // http://code.google.com/apis/ajaxfeeds/documentation/reference.html#JSON
    for (var i = 0; i < result.feed.entries.length; i++) {
      var entry = result.feed.entries[i];
      var div = document.createElement("div");
      div.appendChild(document.createTextNode(entry.title));
      container.appendChild(div);
    }
  }
}

function OnLoad() {
  // Create a feed instance that will grab Digg's feed.
  var feed = new google.feeds.Feed("http://www.digg.com/rss/index.xml");

  // Calling load sends the request off.  It requires a callback function.
  feed.load(feedLoaded);
}

google.setOnLoadCallback(OnLoad);
</script>
Daniel Magnusson
la source
c'est une excellente option car elle ne repose pas sur jquery!
Pete Gardner
0

zRSSfeed est construit sur jQuery et le thème simple est génial.
Essaie.

Guruprasad Balaji
la source
-1

jQuery Feeds est une bonne option, il dispose d'un système de modèles intégré et utilise l'API Google Feed, donc il prend en charge plusieurs domaines.

camagu
la source
-1

Superfeedr a un plugin jquery qui le fait très bien. Vous n'aurez aucun problème de politique d'origine croisée et les mises à jour sont propagées en temps réel.

Julien Genestoux
la source
Pourquoi cette solution n'aurait-elle pas de problèmes CORS?
drewish
-2

jFeed est facile et a un exemple à tester. Mais si vous analysez un flux à partir d'un autre serveur, vous devrez autoriser le partage de ressources Cross Origin (CORS) sur le serveur du flux. Vous devrez également vérifier la prise en charge du navigateur .

J'ai téléchargé l'exemple mais je n'ai toujours pas obtenu de support d'IE dans aucune version lorsque j'ai changé l'URL dans l'exemple en quelque chose comme example.com/feed.rss via le protocole http. CORS doit être pris en charge pour IE 8 et supérieur, mais l'exemple jFeed n'a pas rendu le flux.

Votre meilleur pari est d'utiliser l'API de Google:
https://developers.google.com/feed/v1/devguide

Voir:
https://github.com/jfhovinne/jFeed
http://en.wikipedia.org/wiki/Cross-origin_resource_sharing
http://en.wikipedia.org/wiki/Same_origin_policy
http://caniuse.com/cors

Rimian
la source