【问题标题】:Does JFeed support RSS images?JFeed 是否支持 RSS 图片?
【发布时间】:2011-02-02 10:12:57
【问题描述】:

我查看了 JFeed 的自述文件,但它并没有提到获取 RSS 项目的图像:

JFeedItem 属性

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

有人知道解析这些图像的方法吗?

【问题讨论】:

    标签: jquery rss jfeed


    【解决方案1】:

    简答“”。

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

    也就是说,您始终可以扩展库以支持提要图像。例如,在 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.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);
    });
    

    我累了,边走边编,你知道吗? ;)

    【讨论】:

    • 这一切都说得通 - 我已经破解了它,但似乎无法访问该项目的缩略图元素。 RSS sn-p: url/something.jpg"></media:thumbnail></item> jfeeditem.js: function JFeedItem() {}; JFeedItem.prototype = { title: '',链接:'',描述:'',更新:'',id:'',thumbnailurl:''}; jrss.js: ... item.id = jQuery(this).find('guid').eq (0).text(); item.thumbnailurl = jQuery(this).find('media:thumbnail').attr('url'); thumbnail 属性仍未定义,我似乎无法匹配。跨度>
    • 好的,您的问题看起来与命名空间有关。尝试此处建议的解决方案之一:stackoverflow.com/questions/128580/jquery-find-problem
    • 超级容易实现,顺便说一下——我有点习惯不深入插件定制,所以很高兴看到这个很简单,可以快速添加一些点点滴滴。
    猜你喜欢
    • 2023-04-07
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 2019-08-07
    • 2016-12-11
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    相关资源
    最近更新 更多