当前位置: 首页 > 知识库问答 >
问题:

使用jQuery/Apache Cordova检索rss提要

凌伟泽
2023-03-14

我试图通过apache cordova获取rss提要并在移动设备上显示内容。但是,如果我不提供指向的url。xml文件,读取器不加载。例如

var feedUrl = "https://newsline.com/feed/";

这不会加载,但如果我使用

var feedUrl = "http://feeds.bbci.co.uk/news/technology/rss.xml";

它起作用了。下面是我正在使用的rss阅读器javascript文件:

 /**
 * Fetch RSS and display the contents of it
 */
Feed.prototype.load = function() {
    var self = this;

    $(this.maskEl).show();
    $(this.errorEl).text('');

    $.ajax({
        url: this.url,
        dataType: 'text',
        crossDomain: true,
        success: function(data) {
            data = $.parseXML(data.trim());

            $(self.listEl).empty();

            // Display RSS contents
            var $rss = $(data);
            $rss.find('item').each(function() {
                var item = this;
                $(self.listEl).append(self.createListElement(item));
            });
        },
        error: function() {
            $(self.errorEl).text('Failed to load RSS.');
        },
        complete: function() {
            $(self.maskEl).hide();
        }
    });
};

索引上。html页面:

var feedUrl = "https://newsline.com/feed/";

    $(function() {

        var feed = new Feed({
            url: feedUrl
        });

        if (monaca.isIOS) {
            $('.toolbar').css('margin-top', '20px');
            $('.button').css('top', '20px');
        }

        $('.button').click(function() {
          console.log('Reload.');
          feed.load();
        });

        feed.load();

    });

任何帮助将不胜感激。我认为这与feed-reader.js中xml的实际解析有关,但不完全确定。

谢谢

更新:

我得到了预期的url,但当我在提要上单击一篇文章后试图返回主页时,出现了问题(它不会重新加载rss提要)。代码相同。例如,下面是一些截图:图像截图

基本上,提要将加载到主页上,但如果单击链接,用户转到该页面,然后单击后退箭头(如屏幕截图所示),则会出现错误消息“加载RSS失败”。页面不再获取结果是否是jQuery的问题?我将其设置为在DOM就绪后执行,因此我不明白如果用户返回主页,为什么它不会再次加载提要。

再次感谢您的帮助。

共有1个答案

公羊绪
2023-03-14

听起来像是缓存问题。如果是这样,PhoneGap禁用缓存可能会对您有所帮助。您需要一个插件,将其安装

phonegap local plugin add https://github.com/moderna/cordova-plugin-cache.git

并由使用

document.addEventListener('deviceready', onDeviceReady);
function onDeviceReady()
{
        var success = function(status) {
            alert('Message: ' + status);
        }

        var error = function(status) {
            alert('Error: ' + status);
        }

        window.cache.clear( success, error );
}
 类似资料:
  • 我想使用jsoup从RSS提要检索数据。我可以在所有的标签,但我不能这样做,当有内容:编码标签。请任何人帮助我如何从内容:编码标签获取数据。我的订阅源URL是https://sambad.in/feed/我的代码也是Document doc=Jsoup。解析(String.valueOf(response));元素itemElements=doc。选择(“项目”);

  • 问题内容: 我正在尝试使用他们的RSS feed和jquery显示我最新的stumbleupon项目的标题。我具有的功能是: 哪个什么都不返回…我只是想获取有关提要中 单个 最新项目的信息-我该怎么做? 问题答案: 这是有关如何使用JQuery进行跨域Ajax 的教程。

  • 问题内容: 我正在使用PHP和simpleXML来阅读以下rss feed: 我可以这样获得大多数信息: 但是我将如何输出以下标记中的缩略图: 问题答案: SimpleXML在处理名称空间方面非常糟糕。您有两种选择:最简单的技巧是将提要的内容简单地读入字符串并替换名称空间。 现在,您可以直接访问元素。 更为优雅(不是真的)的方法是找出名称空间使用的URI。如果您查看http://feeds.bbc

  • 问题内容: :我只想显示Mysql表记录的简单ajax代码: Records.php是用于从Mysql提取记录的文件。 在数据库中只有两个字段:“名称”,“地址”。 该代码不起作用。 问题答案: 为了使用Ajax + jQuery检索数据,您应该编写以下代码: 对于mysqli连接,请编写以下代码: 为了显示数据库中的数据,您应该这样编写:

  • 问题内容: 我有一个输出html简单行的表格 我可以通过将数据附加到网址(例如http://site.com/form.asp?sample=100)直接访问该过程 因为这是跨域(到子域)的,所以我尝试使用JSONP做到这一点。我首先使用数据类型json进行了尝试,但仍被禁止使用403。这是我正在使用JSONP进行的尝试,但这是种种混乱,并会在错误后面附加此%5Bobject%20Object%5

  • 这是错误的方法/代码吗?如果你能提出更好的方法/代码,那就太好了。