Parse RSS dengan jQuery

194

Saya ingin menggunakan jQuery untuk mem-parsing umpan RSS. Apakah ini dapat dilakukan dengan pustaka jQuery dasar di luar kotak atau akankah saya perlu menggunakan plugin?

Andy Brudtkuhl
sumber
1
Saya akan menggunakan github.com/sdepold/jquery-rss - ini adalah opsi terbaik saat ini, banyak pilihan tersedia! :)
Komrath
Bagi siapa pun yang mendarat di sini dari google, saya harus membuat hal serupa untuk penampil thumbnail deviantART. Bagus dan sederhana dan mudah diperpanjang: adamjamesnaylor.com/2012/11/05/… . Catatan itu menggunakan pembaca feed google, tetapi hanya untuk mengubahnya menjadi JSON.
Adam Naylor

Jawaban:

208

PERINGATAN

Google Feed API sudah usang secara resmi dan tidak berfungsi lagi !


Tidak perlu seluruh plugin. Ini akan mengembalikan RSS Anda sebagai objek JSON ke fungsi panggilan balik:

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
sumber
4
Mencoba jFeed dan tidak berhasil, ini berfungsi dengan baik dan tidak memerlukan perpustakaan tambahan.
diggersworld
15
Sadarilah ... menggunakan google api, feed di-cache sehingga Anda tidak akan mendapatkan feed terbaru dan terbaik.
c0deNinja
3
dimana itu di-cache? bagaimana cara menghapus cache?
Jeg Bagus
39
Ini bukan jawaban yang bagus. Itu tergantung pada perusahaan pihak ketiga [Google] yang mempertahankan layanan mereka. Itu tidak menjawab pertanyaan asli ("Parse RSS with jQuery") dan sebagai gantinya mengiklankan Google. Bagaimana jika Google menjatuhkan atau memodifikasi API ajax mereka? Situs web Anda rusak.
Charles Goodwin
11
@CharlesGoodwin Google baru saja menghapus API ini! developers.google.com/feed/?hl=id
GôTô
185

Gunakan jFeed - plugin jQuery RSS / Atom. Menurut dokumen, sesederhana:

jQuery.getFeed({
   url: 'rss.xml',
   success: function(feed) {
      alert(feed.title);
   }
});
Nathan Strutz
sumber
2
Adakah contoh penggunaan dunia nyata? yaitu parsing dan display daripada waspada. atau sesederhana $ ("# hasil"). append (feed.title)
Andy Brudtkuhl
3
CATATAN: unduhan memiliki semua jenis contoh hebat di dalamnya
Andy Brudtkuhl
12
Anirudha, mungkin Anda bisa mencoba 7-zip? Gratis, sumber terbuka, dan membuka berbagai jenis file, termasuk tar / gzip.
Nathan Strutz
100
Harap perhatikan versi terbaru dari plugin ini tersedia di Github .
Alan H.
3
jFeed tampaknya tidak lagi dipelihara secara aktif (perubahan terakhir dari catatan adalah 2 tahun, dan banyak permintaan tarik terbuka tampaknya diabaikan), dan tidak berfungsi dengan rilis terbaru dari jQuery.
Thilo
159

Bagi kita yang datang ke diskusi terlambat, dimulai dengan 1,5 jQuery memiliki kemampuan parsing xml built-in, yang membuatnya cukup mudah untuk melakukan ini tanpa plugin atau layanan pihak ke-3. Ini memiliki fungsi parseXml, dan juga akan mem-parsing xml saat menggunakan fungsi $ .get. Misalnya:

$.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
sumber
10
Kesalahan XmlHttpRequest: Asal tidak diizinkan oleh Access-Control-Allow-Origin
jackocnr
12
@ jackocnr, ya itulah kelemahan dari metode ini. Anda tidak dapat melakukan permintaan lintas-domain kecuali jika Anda memiliki akses untuk mengatur header Access-Control-Allow-Origin di server sumber. Jika server mendukung jsonp, maka itu adalah taruhan terbaik Anda. Jika tidak, Anda dapat menggunakan skrip proxy di dalam domain Anda untuk mengambil xml dan kemudian memanggil skrip itu alih-alih server eksternal.
David Hammond
Apakah ini satu-satunya jawaban yang tidak bergantung pada plugin atau layanan eksternal?
Blazemonger
Mengapa $this.find("link").text()selalu mengembalikan string kosong ''?
Jeff Tian
@ Jeff Jian, sulit dikatakan tanpa melihat xml Anda. Alasan yang paling jelas adalah bahwa elemen <link> hilang atau kosong.
David Hammond
16

jFeed tidak berfungsi di IE.

Gunakan zRSSFeed . Sudah bekerja dalam 5 menit

Tandai Steggles
sumber
2
Tersedia di zazar.net/developers/zrssfeed Tentang untuk mencobanya sendiri untuk melihat hasilnya, terlihat menjanjikan.
thewinchester
3
BTW, zRssFeed menggunakan internal Google Feed RSS API . Jadi, jika seseorang ingin melakukan tata letak HTML itu sendiri, lebih mudah untuk langsung melihat ke sana.
Ciantic
lima menit atau kurang :)
Constanta
super cool ... satu-satunya hal adalah jika mereka menyediakan objek umpan daripada seluruh html dalam fungsi panggilan balik yang akan lebih baik ...
shahil
2
FYI ada yang mencari untuk menggunakan plugin ini. Pengembang memposting yang berikut ini. "PLUGIN INI DIHENTIKAN. Karena Google Feeds API dihapus dari layanan, yang mana plugin menjawab, plugin itu tidak lagi tersedia atau didukung." Sumber: zazar.net/developers/jquery/zrssfeed
phanf
16

Pembaruan (15 Okt 2019)

Saya mengekstraksi logika inti dari jquery-rss ke perpustakaan baru bernama Vanilla RSS yang menggunakan API fetch dan dapat bekerja tanpa ketergantungan tambahan:

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');
});

Asli

pos:

Anda juga dapat menggunakan jquery-rss , yang dilengkapi dengan templating yang bagus dan super mudah digunakan:

$("#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>'
})

hasil (per 18 September 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>

Lihat http://jsfiddle.net/sdepold/ozq2dn9e/1/ untuk contoh yang berfungsi.

sdepold
sumber
Ingatlah bahwa jquery-rss menggunakan Google Feed API yang akan men-cache feed, yang bisa menimbulkan masalah. Anda dapat mengelabuinya dengan menambahkan parameter url sampah: stackoverflow.com/questions/13401936/…
kukabuka
berikan contoh untuk memformat tanggal tanpa menggunakanmoment.js
Purvesh Desai
Periksa potongan berikut gist.github.com/sdepold/d1e5e0e7a66fc77930fe Ini akan menghasilkan sesuatu seperti ini: "<beberapa konten>, [@ 2015-11-18]"
sdepold
Hanya ingin menyebutkan bahwa jquery-rss TIDAK menggunakan Google Feed API tetapi pengganti drop-in yang disebut Feedr ( github.com/sdepold/feedrapp ) dan masing-masing berfungsi dengan baik meskipun API asli dimatikan.
sdepold
15

Menggunakan 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
sumber
9

Gunakan Google AJAX Feed API kecuali data RSS Anda pribadi. Cepat, tentu saja.

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

yogman
sumber
1
Ide yang bagus, tetapi tidak berfungsi ketika Anda berada di dalam firewall yang memerlukan otentikasi proxy menggunakan kotak dialog.
thewinchester
umpan google sudah usang dan tidak didukung lagi.
vikas etagi
8

UPDATE [ 25/4/2016 ] Versi sekarang lebih baik ditulis dan didukung penuh dengan lebih banyak opsi dan kemampuan yang dihosting di GitHub.jQRSS

Saya melihat Jawaban yang Dipilih oleh Nathan Strutz , namun, tautan halaman Plugin jQuery masih turun dan halaman beranda untuk situs tersebut tampaknya tidak dimuat. Saya mencoba beberapa solusi lain dan menemukan sebagian besar dari mereka, tidak hanya ketinggalan zaman, tetapi MUDAH ! Jadi saya melemparkan topi saya di luar sana dan membuat plugin saya sendiri, dan dengan tautan mati di sini, ini sepertinya tempat yang bagus untuk mengirimkan jawaban. Jika Anda mencari jawaban ini pada 2012 (segera ke 2013) Anda mungkin melihat frustrasi link mati dan saran lama di sini seperti yang saya lakukan. Di bawah ini adalah tautan ke contoh plugin modern saya serta kode ke plugin! Cukup salin kode ke file JS & tautkan di header Anda seperti plugin lainnya. Penggunaannya EZ SANGAT LUAR BIASA!

jsFiddle

Plugin Code
2/9/2015 - membuat pembaruan yang lama tertunda untuk memeriksa consolesebelum mengirim perintah ke sana! Harus membantu dengan masalah IE yang lebih lama.

(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);

MENGGUNAKAN

//  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 ('Cari Kata Di Sini dan Bukan Tautan', fungsi (feed) {/ * do work * /}) // TODO: Perlu diperbaiki

Pilihan

{
    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
sumber
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
sumber
5

Saya setuju dengan @Andrew , menggunakan Google adalah cara yang solid dan dapat digunakan kembali untuk melakukannya dengan manfaat besar yang Anda dapatkan kembali JSON alih-alih XML. Keuntungan tambahan menggunakan Google sebagai proxy adalah bahwa layanan yang mungkin memblokir akses langsung Anda ke data mereka tidak mungkin menghentikan Google. Berikut adalah contoh menggunakan laporan ski dan data kondisi. Ini memiliki semua aplikasi dunia nyata yang umum: 1) Pihak ketiga RSS / XML 2) JSONP 3) Membersihkan string dan string ke array ketika Anda tidak bisa mendapatkan data persis seperti yang Anda inginkan 4) pada load menambahkan elemen ke DOM. Semoga ini bisa membantu beberapa orang!

<!-- 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
sumber
2
Ini tidak akan berfungsi karena masalah lintas-domain. Anda membutuhkan JSONP.
Gotofritz
1
Ini bekerja untuk saya. Apakah Anda mengujinya? Cukup yakin Google mengembalikan jsonp menggunakan parameter panggilan balik bukan tipe data ajax.
Dylan Valade
Tidak yakin untuk apa downvote itu. Kode ini masih berfungsi tiga tahun kemudian. Rekatkan semuanya ke konsol dan Anda akan melihat kondisi ski (XML) saat ini ditambahkan ke footer halaman ini.
Dylan Valade
4

jFeed agak usang, hanya bekerja dengan versi jQuery yang lebih lama. Sudah dua tahun sejak diperbarui.

zRSSFeed mungkin sedikit kurang fleksibel, tetapi mudah digunakan, dan bekerja dengan versi jQuery saat ini (saat ini 1.4). http://www.zazar.net/developers/zrssfeed/

Berikut adalah contoh cepat dari dokumen zRSSFeed:

<div id="test"><div>

<script type="text/javascript">
$(document).ready(function () {
  $('#test').rssfeed('http://feeds.reuters.com/reuters/oddlyEnoughNews', {
    limit: 5
  });
});
</script>
Alderete
sumber
Perhatikan bahwa ini hanya berfungsi dengan umpan non-lokal, karena menggunakan Google Feed API (Google harus dapat memuat xml umpan).
CmdrTallen
2

Saya menyarankan Anda untuk menggunakan FeedEk . Setelah Google Feed API tidak lagi digunakan, sebagian besar plugin tidak berfungsi. Tapi FeedEk masih berfungsi. Ini sangat mudah digunakan dan memiliki banyak opsi untuk menyesuaikan.

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

Dengan opsi

$('#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
sumber
Saya tidak yakin apakah Anda benar-benar dapat menentukan titik akhir api alternatif, tetapi jika Anda bisa, kemungkinan akan ada kemungkinan untuk mengganti api umpan google dengan feedrapp: github.com/sdepold/feedrapp (yang juga merupakan tulang punggung untuk jquery -rss saat ini)
sdepold
Ini tidak melakukan penguraian. Ini menggunakan yahooapis untuk melakukan parsing, lalu hanya menampilkan konten.
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
sumber
Bukan jawaban yang buruk, tetapi sayangnya Anda tidak melakukan pekerjaan terbaik menempelkan kode. ;-)
Hingga
0

Gunakan google ajax api , di-cache oleh google dan format output apa pun yang Anda inginkan.

Contoh kode; 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
sumber
ini adalah pilihan yang bagus karena tidak bergantung pada jquery!
Pete Gardner
0

zRSSfeed dibangun di atas jQuery dan tema sederhananya mengagumkan.
Cobalah.

Guruprasad Balaji
sumber
-1

jQuery Feeds adalah opsi yang bagus, ia memiliki sistem templating bawaan dan menggunakan Google Feed API, sehingga memiliki dukungan lintas domain.

camagu
sumber
-1

Superfeedr memiliki plugin jquery yang melakukannya dengan sangat baik. Anda tidak akan memiliki masalah Kebijakan Asal Silang dan pembaruan disebarkan secara langsung.

Julien Genestoux
sumber
Mengapa solusi ini tidak memiliki masalah CORS?
drewish
-2

jFeed mudah dan memiliki contoh untuk Anda uji. Tetapi jika Anda mengurai umpan dari server lain, Anda harus mengizinkan Cross Origin Resource Sharing (CORS) di server umpan. Anda juga perlu memeriksa dukungan browser .

Saya mengunggah sampel tetapi masih tidak mendapatkan dukungan dari IE dalam versi apa pun ketika saya mengubah url pada contoh menjadi sesuatu seperti example.com/feed.rss melalui protokol http. CORS harus didukung untuk IE 8 dan di atasnya tetapi contoh jFeed tidak membuat umpan.

Taruhan terbaik Anda adalah menggunakan Google API:
https://developers.google.com/feed/v1/devguide

Lihat:
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
sumber