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