Ya, I did create a new instance of the _IG_Prefs class at the
beginning of my script.

I tried setting the prefs array like you recommended - with the entire
array and not each individual element but it didn't work either.
Looks like that way, the array isn't even saved when I click on
another tab and then back to the Playlist tab (the way it was working
previously).

I had though that the items would be added to the array individually
based on the documentation here:
http://code.google.com/apis/gadgets/docs/legacy/fundamentals.html#list
specifically, this line "For example, the following excerpt adds the
values "Nokia" and "CNET" to the list: " when read in context, seemed
to imply that.


On Sep 24, 12:11 pm, Matt Foster <[EMAIL PROTECTED]> wrote:
> You probably have done this as you noted it in the subject, but i
> didn't see it in the code.  Although prefs is used throughout the
> entire documentation, it is not actually a global variable in the
> gadget environment.  It is an instance of the _IG_Prefs class.
>
> var prefs = new _IG_Prefs();  // as noted you probably know this but
> just covering the bases.
>
> Where I think your real problem lies is in the prefs.setArray
> execution.  It is expecting to receive the entire array, where you're
> iterating over that array and sticking each item inside, this is in
> essence overwriting the last value each iteration, not to mention the
> fact that its the wrong data type, its expecting an array.
>
> prefs.setArray("songArray", songArr);
>
> http://code.google.com/apis/gadgets/docs/legacy/reference.html#Core
>
> On Sep 23, 3:32 pm, jamim <[EMAIL PROTECTED]> wrote:
>
> > I'm trying to save an array, and it is saving if I click on another
> > tab and then back to this "Playlist" tab, but when the page is
> > refreshed (and this tab is on a timer to refresh every 30 seconds) the
> > array is lost.  The data that populates the array is retrieved from an
> > xsl file and each element is a DocumentFragment (a fragment of a
> > document tree). Here's my code:
>
> > var xsltProcessor = new XSLTProcessor();
> > xsltProcessor.importStylesheet(xsl);
> > var song = xsltProcessor.transformToFragment(xml,document);
> > songArr = prefs.getArray('songArray');
>
> > // if there are already songs in array
> > if(songArr.length > 0)
> > {
> >         var last_song = songArr.slice(songArr.length-1);
>
> >         // if new song isn't already in array
> >         if(last_song.childNodes[2].textContent !=
> > song.childNodes[2].textContent)
> >         {
> >                 if(songArr.length != 5)         // if array isn't "full"
> >                 {
> >                         songArr.push(song);
> >                 }
> >                 else
> >                 {
> >                         songArr.shift();
> >                         songArr.push(song);
> >                 }
> >         }}
>
> > else    // array is empty
> > {
> >         songArr.push(song);}
>
> > document.getElementById(id).innerHTML = "";
> > for(i=0; i<songArr.length; i++)
> > {
> >         document.getElementById(id).appendChild(songArr[i]);
> >         prefs.setArray('songArray', songArr[i]);
>
> > }
>
> > As of now, only one song is ever getting output.  I'm trying to output
> > 5.  The complete code for the gadget is 
> > here:http://kexp-developing-gadget.googlecode.com/svn/trunk/kexp_rss_gadge...
>
> > Thanks.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"iGoogle Developer Forum" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/Google-Gadgets-API?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to