[Vista Gadget] Achtergrond wordt gecached

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • DNA_Saint
  • Registratie: Maart 2004
  • Laatst online: 21-09 19:24

DNA_Saint

Go Go Gadget Ondertitel!

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

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!


Acties:
  • 0 Henk 'm!

  • tonyisgaaf
  • Registratie: November 2000
  • Niet online
Lees de volgende pagina over het debuggen van Sidebar Gadgets eerst maar eens. En nog een artikel (uitgebreider) over het debuggen van een gadget.
Ook op MSDN is te vinden dat je naar de Console kan schrijven d.m.v. System.Debug m.b.v. outputString.

En nou lekker debuggen!

En op MSDN staat letterlijk:
Note This method is valid but not recommended due to unpredictable rendering or limited functionality.
document.body.style.backgroundImage = "url(../images/bg_undocked.png)";

[ Voor 18% gewijzigd door tonyisgaaf op 12-12-2008 16:20 ]

NL Weerradar widget Euro Stocks widget Brandstofprijzen widget voor 's Dashboard