将RSS数据加载到全局变量中

时间:2016-07-19 10:01:05

标签: javascript google-api rss global-variables

我使用Javascript。我希望通过API谷歌(此链接:http://www.javascriptkit.com/dhtmltutors/googleajaxfeed.shtml)获取RSS数据,然后将数据插入数组(全局变量)。但是我的全局变量无法保存数据。

rssfeedsetup()功能中,ARR_DATA(全局数组)包含数据。但是,在加载 rssfeedsetup()函数后,ARR_DATA没有数据。

请告诉我,在这种情况下如何将数据插入全局变量。

我的代码: 头:

<head>
    <title>TEST API FEED RSS</title>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    <script type="text/javascript" src="http://www.google.com/jsapi">
    </script>

    <script type="text/javascript">
        google.load("feeds", "1"); //Load Google Ajax Feed API (version 1)
    </script>
</head>

身体:

<body>
    <div id="feeddiv"></div>

    <script type="text/javascript">

        var ARR_DATA = []; // **I want to insert data into this array**

        var feedurl = "http://rss.slashdot.org/Slashdot/slashdot";
        var feedlimit = 4;

        function rssfeedsetup() {
            var feedpointer = new google.feeds.Feed(feedurl); //Google Feed API method
            feedpointer.setNumEntries(feedlimit); //Google Feed API method
            feedpointer.load(displayfeed); //Google Feed API method
        }

        function displayfeed(result) {
            if (!result.error) {
                var thefeeds = result.feed.entries;
                var arr_Temporary = [];

                for (var i = 0; i < thefeeds.length; i++) {

                    arr_Temporary[0] = thefeeds[i].title;
                    arr_Temporary[1] = thefeeds[i].link;

                    // insert RSS data into ARR_DATA.
                    ARR_DATA.push(arr_Temporary);

                    console.log('value before:', ARR_DATA); // check value of ARR_DATA, there have data exist.
                }
            } 
        }

        window.onload = function () {
            rssfeedsetup(); // call function

            console.log('value2 after:', ARR_DATA);  // check value of ARR_DATA, there is no data.
        };
        console.log('value2 after:', ARR_DATA); //check value of ARR_DATA, there is no data.
    </script>
</body>

我有价值控制台: image of firebug on firefox

Ps:加载函数rssfeedsetup()之后为什么ARR_DATA不包含数据?

1 个答案:

答案 0 :(得分:1)

您可以将数据推送到数组中,如下所示:

function displayfeed(result) {
            if (!result.error) {
                var thefeeds = result.feed.entries;

                for (var i = 0; i < thefeeds.length; i++) {
                    var feed = { 
                        title: thefeeds[i].title,
                        link: thefeeds[i].link
                    };

                    ARR_DATA.push(feed);
                }
                console.log(feed);
            } 
        }

希望有所帮助