Ik weet niet echt in welke categorie dit moet, maar denk hier want het is toch javascript.
Ik heb een vista gadget gemaakt, met daarbij een optie om verschillende achtergronden te kiezen.
Maar nu worden ze gecached. Ik selecteer er 1, die zie je dan nog niet veranderen. Maar wanneer je de sidebar afsluit en opnieuw opstart, dan zie je het wel.
Hier is een functie waarbij de achtergrond wordt opgeslagen
En daarna wordt er in de gadget zelf via javascript de setting aangeroepen om daarna de background te veranderen:
Dit werkt dus niet...hij cached dus de vorige achtergrond.
Ik heb gelezen dat images worden gecached en dat het een bug is. Maar hoe moet je het dan doen?
Ik heb ook al dit geprobeerd:
System.Gadget.background = "images/xmas.png";
maar dat werkt ook niet.
Ik heb een vista gadget gemaakt, met daarbij een optie om verschillende achtergronden te kiezen.
Maar nu worden ze gecached. Ik selecteer er 1, die zie je dan nog niet veranderen. Maar wanneer je de sidebar afsluit en opnieuw opstart, dan zie je het wel.
HTML:
1
2
3
4
5
6
7
8
9
10
| <table width="100%" border="0" cellspacing="3" cellpadding="3"> <tr> <td><img src="images/docked-thumb.png"/><br><input name="background" type="radio" id="default" value="default" checked="checked" onClick="bg1();"/></td> <td><img src="images/xmas-thumb.png"/><br><input type="radio" name="background" id="xmas" value="xmas" onClick="bg2();"/></td> </tr> <tr> <td><img src="images/pink-thumb.png"/><br><input name="background" type="radio" id="pink" value="pink" onClick="bg3();"/></td> <td><img src="images/green-thumb.png"/><br><input name="background" type="radio" id="green" value="green" onClick="bg4();"/></td> </tr> </table> |
Hier is een functie waarbij de achtergrond wordt opgeslagen
JavaScript:
1
2
3
4
| function bg1() { System.Gadget.Settings.write("background", 1) } |
En daarna wordt er in de gadget zelf via javascript de setting aangeroepen om daarna de background te veranderen:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
| function setBg(){ var bg = System.Gadget.Settings.read("background"); if(bg == 1){ document.getElementById('body').style.backgroundImage='url(images/docked.png)'; } else if(bg == 2){ document.getElementById('body').style.backgroundImage='url(images/xmas.png)'; } else if(bg == 3){ document.getElementById('body').style.backgroundImage='url(images/pink.png)'; } else if(bg == 4){ document.getElementById('body').style.backgroundImage='url(images/green.png)'; } } |
Dit werkt dus niet...hij cached dus de vorige achtergrond.
Ik heb gelezen dat images worden gecached en dat het een bug is. Maar hoe moet je het dan doen?
Ik heb ook al dit geprobeerd:
System.Gadget.background = "images/xmas.png";
maar dat werkt ook niet.
Huub Huub Barbatruc!