سؤال

أريد أن استخدام مسج تحليل آر إس إس.يمكن أن يتم ذلك مع قاعدة مكتبة مسج من خارج منطقة الجزاء أو سوف تحتاج إلى استخدام البرنامج المساعد ؟

هل كانت مفيدة؟

المحلول

تحذير

جوجل API تغذية رسميا إهمال و لا تعمل بعد الآن!


لا حاجة كله المساعد.هذا سيعود RSS الخاصة بك سلمان كائن إلى وظيفة رد الاتصال:

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

نصائح أخرى

استخدام jFeed - البرنامج المساعد مسج RSS / اتوم. ووفقا للمستندات، انها بسيطة مثل:

jQuery.getFeed({
   url: 'rss.xml',
   success: function(feed) {
      alert(feed.title);
   }
});

وبالنسبة لنا، نحن المقبلة لمناقشة في وقت متأخر، بدءا 1.5 مسج وقد بنيت في قدرات تحليل XML، مما يجعل من السهل جدا أن تفعل ذلك دون الإضافات أو الخدمات 3rd الطرف. لديه وظيفة parseXml، وأيضا لصناعة السيارات في تحليل XML عند استخدام وظيفة $. احصل. منها مثلا:

$.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...
    });
});

وjFeed لا يعمل في IE.

استخدم zRSSFeed . لو كان ذلك العمل في 5 دقائق

عن طريق 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>

ويمكنك أيضا استخدام مسج-آر إس إس ، الذي يأتي مع النموذجيه لطيفة وهو السوبر سهلة الاستخدام:

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

والعوائد (اعتبارا من 18 سبتمبر 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>

http://jsfiddle.net/jhfrench/AFHfn/ للحصول على مثال العمل.

استخدم جوجل AJAX تغذية API ما لم يكن البيانات RSS الخاص بك الخاص. انها سريعة، بطبيعة الحال.

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

التحديث [4/25/2016] الآن أفضل كتب بدعم كامل نسخة مع المزيد من الخيارات والقدرات استضافتها في جيثب.jQRSS

رأيت مختارة الجواب قبل ناثان Strutz, ومع ذلك ، فإن البرنامج المساعد مسج رابط الصفحة لا تزال أسفل الصفحة الرئيسية لهذا الموقع لا يبدو أن الحمل.حاولت بعض الحلول الأخرى وجدت معظمها أن تكون ليس فقط خارج مؤرخة ، ولكن سهلة!وهكذا رميت قبعتي هناك وجعل بلدي المساعد, و مع الموتى الروابط هنا يبدو أن هذا هو مكان عظيم أن يقدم جوابا.إذا كنت تبحث عن إجابة في عام 2012 (قريبا ب 2013) قد تلاحظ الإحباط من الميت الروابط و نصيحة قديمة هنا كما فعلت.أدناه هو رابط بلدي الحديث المساعد سبيل المثال وكذلك رمز البرنامج المساعد!ببساطة نسخ التعليمات البرمجية في ملف JS & رابط في رأس الخاصة بك مثل أي المساعد الأخرى.الاستخدام للغاية EZ!

jsFiddle

رمز البرنامج المساعد
2/9/2015 صنع طال انتظاره تحديث للتحقق من console قبل إرسال الأوامر إلى ذلك!ينبغي أن تساعد مع كبار السن أي من القضايا.

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

استخدام

//  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('كلمات البحث هنا بدلا من رابط', function(تغذية) { /* العمل */ }) // TODO:يحتاج الى اصلاح

خيارات

{
    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.
        */
}
(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>

وأنا أتفق معAndrew ، وذلك باستخدام غوغل، وسيلة قابلة لإعادة الاستخدام الصلبة للقيام بذلك مع الاستفادة الكبيرة التي كنت الحصول على JSON إلى الوراء بدلا من XML. ميزة إضافية لاستخدام جوجل كوكيل هي أن الخدمات التي قد منع الوصول المباشر إلى البيانات الخاصة بهم من غير المرجح أن توقف جوجل. هنا مثال باستخدام تقرير التزلج والبيانات الشروط. هذا لديه كل المشتركة للتطبيقات العالم الحقيقي: 1) الطرف الثالث RSS / XML 2) JSONP 3) سلاسل تنظيف وسلسلة لمجموعة عندما لم تتمكن من الحصول على البيانات بالضبط بالطريقة التي تريدها 4) على الحمل إضافة عناصر إلى DOM. آمل أن يساعد هذا بعض الناس!

<!-- 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>

وjFeed عفا عليه الزمن إلى حد ما، تعمل فقط مع الإصدارات القديمة من مسج. ولقد مر عامان منذ أن تم تحديثه.

وzRSSFeed ربما قليلا أقل مرونة، ولكن من السهل الاستخدام، ويعمل مع الإصدار الحالي من مسج (حاليا 1.4). http://www.zazar.net/developers/zrssfeed/

وهنا مثال سريع من مستندات zRSSFeed:

<div id="test"><div>

<script type="text/javascript">
$(document).ready(function () {
  $('#test').rssfeed('http://feeds.reuters.com/reuters/oddlyEnoughNews', {
    limit: 5
  });
});
</script>

وأنا باستخدام مسج مع yql لتغذية. يمكنك استرداد تويتر، RSS، شرب حتى الثمالة مع yql. قرأت من http://tutorialzine.com/2010/02/ تغذية القطعة-مسج-CSS-yql / . انها مفيدة للغاية بالنسبة لي.

<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>

وأنا المشورة لك استخدام FeedEk . بعد إهمال جوجل تغذية API رسميا أكثر من الإضافات لا يعمل. لكن FeedEk لا يزال يعمل. فمن السهل جدا للاستخدام، ولها العديد من الخيارات لتخصيص.

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

ومع خيارات

$('#divRss').FeedEk({
  FeedUrl:'http://jquery-plugins.net/rss',
  MaxCount : 5,
  ShowDesc : true,
  ShowPubDate:true,
  DescCharacterLimit:100,
  TitleLinkTarget:'_blank',
  DateFormat: 'MM/DD/YYYY',
  DateFormatLang:'en'
});

استخدام جوجل اياكس api, مؤقتا من قبل جوجل و أي تنسيق الإخراج الذي تريده.

نموذج التعليمات البرمجية;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>

zRSSfeed مبني على مسج وبسيطة موضوع رائع.
محاولة إعطائها.

المشروع مسج-آر إس إس هي خفيفة جدا ولا يفرض أي تصميم خاص.

وبناء الجملة يمكن أن تكون بسيطة مثل

$("#rss-feeds").rss("http://www.recruiter.com/feed/career.xml")

سبيل المثال العمل في http://jsfiddle.net/jhfrench/AFHfn/

مسج إس هو خيار لطيفة، فقد المدمج في نظام النموذجيه ويستخدم جوجل تغذية API، لذلك فقد الدعم عبر المجال.

Superfeedr لها <لأ href = "http://plugins.jquery.com/superfeedr/" يختلط = " نوفولو "> مسج المساعد الذي يفعل ذلك بشكل جيد جدا. سوف لا يكون لديك أي قضية الصليب السياسة المنشأ ويتم نشر التحديثات في الوقت الحقيقي.

jFeed سهلة و على سبيل المثال بالنسبة لك لاختبار.ولكن إذا كنت تحليل الأعلاف من ملقم آخر, سوف تحتاج إلى السماح الصليب الأصل تقاسم الموارد (CORS) على إطعام الخادم.سوف تحتاج أيضا إلى تحقق من دعم المتصفح.

أنا حملت العينة ولكن لا تزال لم تحصل على الدعم من أي في أي إصدار عندما غيرت عنوان url في المثال إلى شيء من هذا القبيل example.com/feed.rss عبر بروتوكول http.كر ينبغي دعم IE 8 وما فوق ولكن jFeed سبيل المثال لا تجعل الأعلاف.

أفضل رهان هو استخدام جوجل API:
https://developers.google.com/feed/v1/devguide

انظر:
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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top