在页面加载时运行功能(使用新URL刷新RSS提要)Javascript

时间:2015-04-23 09:51:36

标签: javascript jquery

我有一个应用程序,我希望在单击相应的团队时在一个页面上显示不同的RSS源。

例如,当我点击“Aberdeen”时,我希望该页面显示Aberdeen的RSS。 当我点击“凯尔特人”时,我希望同一页面显示凯尔特人的RSS。

我会将我的代码附加在一个部分中 - 基本上当页面#feed加载时,我需要运行getFeed()函数。

我正在使用jQuery Mobile。

“Feed”页面的HTML

<div data-role="page" id="feed">
    <div data-role="header">
        <h1 id="fheader">Header</h1>
    </div>
    <div data-role="content">
        <a href="#" data-role="button" data-icon="plus">Add to My Teams</a>
        <ul data-role="listview" class="list" data-inset="true" >

        </ul>
    </div>
</div>

getFeed的功能

    var feedURL="http://www.football365.com/arsenal/rss";
var n = 12;

function getFeed(url, success, n){

    url= feedURL.replace("??", n.toString());

    if(window.navigator.onLine) {
        $.jGFeed(url, function(feeds) {
            // Check for errors
            if(!feeds){
                // there was an error
                return;
            } else {
                localStorage.setItem(url, JSON.stringify(feeds));
                success(feeds.title, feeds.entries);
            }
        },n );
    } else {
        // Get the fall-back...
        var feed = JSON.parse(localStorage.getItem(url));
        if(feed && feed.length > 0) {
            success(feed.title, feed.entries);
        }
    }
}


$(document).on('pagebeforeshow',function(){

    getFeed(feedURL,function(title,items){
        $("#title").text(title);

        for(var index=0; index<items.length; index+=1){
            $("#list").append(formatItem(items[index]));
        }
        $("#list").listview('refresh');
    },20);
} );

根据团队

查找RSS URL的功能
function getIndex(teamlist, teamname){
            for(var i = 0; i<teamlist.length; i++){
                if(teamlist[i].teamname == teamname){
                    return i; // if found index will return
                }
            }
            return -1; // if not found -1 will return
        }

        var a = getIndex(teamlist,name); // will give a as 0
        console.log(a);

        feedURL = teamlist[a].rss_url;
        console.log(feedURL);

如您所见,特定团队的RSS URL是通过数组中的索引找到的。找到数组后,它会将其分配给feedURL变量。这部分工作正常

但是,当页面打开时,它不会考虑变量的变化。我需要刷新或重新运行getFeed()函数以考虑feedURL的新值。

希望这可以解决问题:)谢谢:)

1 个答案:

答案 0 :(得分:1)

如果您想在页面加载时运行您的功能,请使用:

$(document).ready(function(){
    getFeed();
};

当页面完全渲染并且#feed元素可用时,这将运行您的函数。