2010-03-30 62 views
1

我看了一下JFeed的自述,它并没有提到反正去的RSS项目的形象:JFeed是否支持RSS图像?

JFeedItem性能

* item.title 
* item.link 
* item.description 
* item.updated 
* item.id 

有谁知道一种方法来分析这些图像?

回答

3

简短回答“”。

没有默认jFeed支持RSS(或“图标”/“徽标”访问ATOM的“图像”访问)。

这就是说你总是可以扩展库来支持feed图像。例如,在jrss.js您可以添加:

var image = jQuery('image', xml).eq(0); 

this.image = new Object(); 
this.image.url = jQuery(image).find('url:first').text(); 
this.image.title = jQuery(image).find('title:first').text(); 
this.image.link = jQuery(image).find('link:first').text(); 

从一个RSS feed,那么你将能够访问:

feed.image.url 

但这只是便于访问整个饲料图形和而不是个别项目。

要支持单个项目图像,您需要扩展jFeed以允许它以某种方式支持属性。

例如支持RSS 2.0的外壳,你可以折叠的属性转换成元素,这样你就能够访问是这样的:

item.enclosure.url 

jrss.js您可以添加类似:

jQuery('item', xml).each(function() { 

    var item = new JFeedItem(); 

    item.title = jQuery(this).find('title').eq(0).text(); 
    item.link = jQuery(this).find('link').eq(0).text(); 
    item.description = jQuery(this).find('description').eq(0).text(); 
    item.updated = jQuery(this).find('pubDate').eq(0).text(); 
    item.id = jQuery(this).find('guid').eq(0).text(); 

    item.enclosure = new Object(); 

    var enc = jQuery(this).find('enclosure'); 

    item.enclosure.url = jQuery(enc).attr('url'); 
    item.enclosure.length = jQuery(enc).attr('length'); 
    item.enclosure.type = jQuery(enc).attr('type'); 

    feed.items.push(item); 
}); 

我厌倦了,随着我走,你能说出来吗? ;)

+0

这一切都有道理 - 我有一个裂缝,但似乎无法访问项目的缩略图元素。 RSS片段: <媒体:缩略图宽度= “66” HEIGHT = “49” URL = “HTTP://url/something.jpg”> jfeeditem.js: 功能JFeedItem( ){}; JFeedItem.prototype = { 标题: '', 链路: '', 描述: '', 更新: '', ID: '', thumbnailurl: '' }; jrss.js: ... item.id = jQuery(this).find('guid')。eq(0).text(); \t \t \t item.thumbnailurl = jQuery(this).find('media:thumbnail')。attr('url'); thumbnail属性保持未定义,我似乎无法匹配它。 – 2010-03-30 16:03:23

+0

好的,你的问题看起来与命名空间有关。尝试这里建议的解决方法之一: http://stackoverflow.com/questions/128580/jquery-find-problem – 2010-03-30 16:32:24

+0

超级容易实现,顺便说一句 - 我有点不习惯深入插件定制,所以很高兴看到这款产品足够简单,可以快速添加少量零件。 – 2010-10-08 13:31:15