如何使用Google Feed API从RSS Feed加载图像?

时间:2014-08-19 16:26:29

标签: javascript rss google-feed-api

我无法使用Google Feed API加载图片,我正在使用mediaGroup加载图片。

这是我为提取Feed而编写的javascript代码

<script type="text/javascript">

google.load("feeds", "1");
function initialize() 
   {
    var feed = new google.feeds.Feed("http://techzei.com/feed");
    feed.setNumEntries(14);
    feed.load(function (result) {
        if (!result.error) 
        {
            result.feed.entries.forEach(function(entry)
            {
              $('#feed').append('<div class="card"><a href="' + entry.link + '">' + entry.title + '</a><p>' + entry.contentSnippet + '</p><br><p>'+entry.publishedDate+'"<img src="'+ entry.mediaGroups+'"/></div>');
            });
        }
    });
}
google.setOnLoadCallback(initialize);

html

<article id="feed"></article>

我现在得到的所有图像都是“未定义的”。我应该做别的吗? Google Feed API dev对此

没有太多启发

1 个答案:

答案 0 :(得分:2)

该Feed似乎没有任何mediaGroup条目,这就是您在结果中未定义的原因,但您可以使用jQuery从entry.content中提取图像。

将图片网址放入数组并显示第一个找到的图片(或无图片):

var content = document.createElement("content");
content.innerHTML = entry.content;                   
var images = $(content).find('img').map(function(){
    return $(this).attr('src')
}).get();
$('#feed').append('<div class="card"><a href="' + entry.link + '">' +
    entry.title + '</a><p>' + entry.contentSnippet + '</p><br><p>'+ 
    entry.publishedDate +'</p>' + 
    (images.length == 0 ? '' :'<img src="'+ images[0] +'"/>') + '</div>');

通过将img标签附加到变量来显示所有图像:

var content = document.createElement("content");
content.innerHTML = entry.content;
var images = "";
$(content).find('img').each(function() {  
    images += this.outerHTML;
}); 
$('#feed').append('<div class="card"><a href="' + entry.link + '">' +
    entry.title + '</a><p>' + entry.contentSnippet + '</p><br><p>' +
    entry.publishedDate + '</p>' + images +'</div>');