【问题标题】:Jquery - Url checker (rss, audio or video podcast)Jquery - 网址检查器(rss、音频或视频播客)
【发布时间】:2011-10-01 17:43:59
【问题描述】:

我尝试使用 google feed api 构建一个 url 检查器。

我的问题:
1:if(result) 检查不起作用。可能是异步问题?
2:对 rss、音频/视频播客检查有什么想法吗?我敢肯定,我在响应中得到了音频/视频文件的 url(但我现在是盲人)。

我的想法是检查这个网址。

// somthing like that
if(typeof xxxx == 'undefined') -> rss feed
if xxxx.match(/mp3|wav|XXX/gi) -> audio feed
if xxxx.match(/mpg|avi|flv/gi) -> video feed

JS

$(document).ready(function()
{
    // valid rss feed
    var result = urlCheck('http://www.bild.de/rssfeeds/vw-home/vw-home-16725562,short=1,sort=1,view=rss2.bild.xml');
    if(result){ console.warn('result1 is a '+result.urlIsA+' '); console.dir(result); }

    // valid video podcast
    var result = urlCheck('http://www.tagesschau.de/export/video-podcast/webl/tagesschau/');
    if(result){ console.warn('result1 is a '+result.urlIsA+' '); console.dir(result); }

    // valid audio podcast
    var result = urlCheck('http://chaosradio.ccc.de/chaosradio-latest.rss');
    if(result){ console.warn('result1 is a '+result.urlIsA+' '); console.dir(result); }

});
function urlCheck(url)
{
    var feed = new google.feeds.Feed(url);
    feed.setResultFormat(google.feeds.Feed.MIXED_FORMAT);
    feed.setNumEntries('1');
    feed.load(function(result)
    {
        if (!result.error)
        {
            var allEntries = result.feed.entries;
            console.info(url);
            console.dir(allEntries);

            /* if(XXX.match(/XXXX/,gi)) {
                allEntries.urlIsA = 'rss feed';
                return allEntries;
            }
            if(XXX.match(/XXXX/,gi)) {
                allEntries.urlIsA = 'audio podcast';
                return allEntries;
            }
            if(XXX.match(/XXXX/,gi)) {
                allEntries.urlIsA = 'video podcast';
                return allEntries;
            } */

            return false;
        }
        else { return false; }
    });
}


工作示例
http://jsbin.com/unikak/edit#javascript,html

注意:您必须将代码复制到 *.html 文件中,否则会从 jsBin 中收到错误

google.feeds.Feed is not a constructor

【问题讨论】:

    标签: jquery url rss google-api podcast


    【解决方案1】:

    更改您的正则表达式,以便仅匹配字符串末尾的mpg/(mpg|avi|flv/)$/gi

    不要使用return,而是使用回调函数:

    function urlCheck(url, callback){
    
    ....
    //Insread of return false:
    callback(false);
    //Instead of return true:
    callback(true);
    

    在您的结果检查器处:

    urlCheck("http://....", function(result){
        if(result){
             console.warn(...);
        } else {
           //..
        }
    })
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    相关资源
    最近更新 更多