2016-07-19 16 views
0

Ich benutze Javascript. Ich möchte RSS-Daten über API google (diesen Link: http://www.javascriptkit.com/dhtmltutors/googleajaxfeed.shtml), dann fügen Sie die Daten in ein Array (Globale Variable). Aber meine globale Variable kann keine Daten speichern.Load RSS-Daten in globale Variable

Innen rssfeedsetup() Funktion, ARR_DATA (globalen Array) haben Daten. Nach dem Laden rssfeedsetup() Funktion haben ARR_DATA keine Daten.

Bitte zeigen Sie mir, wie Sie in diesem Fall Daten in globale Variable einfügen.

Mein Code: Kopf:

<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> 

Körper:

<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> 

Ich habe Wert Konsole bekam: image of firebug on firefox

Ps: Warum ARR_DATA keine Daten nach Ladefunktion rssfeedsetup enthalten ()

Antwort

1

Sie können Daten schieben in das Array wie folgt:

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

Hoffe, es hilft

+0

Ihnen danken, nachdem Last feedrsssetup() Funktion, ARR_DATA haben noch keine Daten. – vtking

+0

Sie versuchen wahrscheinlich, das Feed-Modul vor dem Laden zu verwenden. Wenn Sie der Dokumentation hier folgen: https://developers.google.com/feed/v1/devguide, sehen Sie, dass Sie die rssfeedsetup() - Funktion in windows.load aufrufen müssen, nachdem Sie das rss-Modul benötigt haben. mit diesem Code: google.load ("feeds", "1"); google.setOnLoadCallback (rssfeedsetup); –

+0

Ja, große Idee! Danke für GROSSE IDEE! Ich akzeptiere, dass Ihre Antwort am hilfreichsten war, um meine Lösung zu finden. – vtking