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

Load RSS data into global variable

我用Javascript。我想通过 API google (这个 link: 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: 为什么 ARR_DATA 加载函数 rssfeedsetup() 后不包含数据?

您可以像这样将数据推送到数组中:

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);
            } 
        }

希望对您有所帮助