[IE 5.0 / JS / HTML] probleem met reloaden plaatje

Pagina: 1
Acties:

  • js303
  • Registratie: April 2003
  • Laatst online: 01-08 22:19
hoi,

ik heb een pagina waarin 2 plaatjes en een stel divs als losse layers geplaatst worden. de divs kunnen aangeklikt worden waarna een nieuwe div die invisible was nu zichtbaar wordt. zo ontstaat een soort popup menu.

welnu, die 2 plaatjes worden weleens herladen, aangezien dit dynamische png's zijn die als een soort online metertjes werken.

zodra ze echter aan het herladen zijn en ik klik dan op een div, dan is de kans groot dat het plaatje niet meer getoond wordt (het gaat hier echt om millisecondes waarbinnen dit kan gebeuren, maar toch). echter, het plaatje is wel degelijk ingeladen - alleen helemaal weg.

als ik vervolgens in m'n contextmenu (right-click op plaatje) op Show Picture klik dan laat ie alsnog het goeie plaatje zien. er is ook verder niks met de visibility van deze image layer gebeurd. alleen maar een document.all.plaatje.src = 'bla.png'

ter verduidelijking: het gaat hier NIET om een js error of iets anders wat fout of raar zit in m'n js code / html. het lijkt er meer op dat internet explorer (5.0 voor zowel mac als win2k hebben last ervan) niet goed de pagina hertekent / rendert, alsof ie het te druk heeft met het visible maken van de div layer waardoor het zojuist geladen plaatje niet meer getoond wordt...

iemand ENIG idee hoe ik dit zou kunnen fixen? ik ben er al een dag mee bezig! ook een soort locking systeempje waarbij je pas op een div mag klikken na een document.all.plaatje.complete werkt niet...

thanx -- jeroen

  • André
  • Registratie: Maart 2002
  • Laatst online: 19-08 12:30

André

Analytics dude

Ten eerste: kun je document.all beter vervangen door document.getElementById

Ten tweede: Wat laat ie zien dan? Een half ingeladen plaatje of alleen maar een placeholder?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 09:16

crisp

Devver

Pixelated

een stukje code zou handig zijn. Hoe trigger je bijvoorbeeld het visible/hidden maken van die layers? gewoon met een onclick op de div, of via een <a href >?
Verder is IE5.0 natuurlijk al een oud beestje; speelt dit ook in nieuwere browsers?
Last but not least zou ik je willen aanraden ipv document.all document.getElementById te gaan gebruiken aangezien dat door andere browsers ook ondersteund wordt.

Intentionally left blank


  • js303
  • Registratie: April 2003
  • Laatst online: 01-08 22:19
kun je document.all beter vervangen door document.getElementById
heeft dat behalve compatibaliteitsproblemen nog effect op het tonen en aanspreken van objecten in IE dan??

Hij laat gewoon niks zien. maar hij staat er wel, als ik met de muis de boel selecteer of ik doe CONTROL+A dan zie je gewoon de boundingboxen van het plaatje zien.

  • js303
  • Registratie: April 2003
  • Laatst online: 01-08 22:19
een stukje code zou handig zijn. Hoe trigger je bijvoorbeeld het visible/hidden maken van die layers? gewoon met een onclick op de div, of via een <a href >?
ik werk met onclicks die een js functie aanroepen.

[ Voor 7% gewijzigd door js303 op 14-05-2003 18:41 ]


  • js303
  • Registratie: April 2003
  • Laatst online: 01-08 22:19
he wacht even, ik heb nu die hele functie ge-remarked //, en als ik klik (waarna er vervolgens niks gebeurt) doet het probleem zich NOG voor. het lijkt erop alsof ik niet mag klikken als-ie de plaatjes herlaadt. heel raar. die onclick event verstoort het laden lijkt het wel.... kijken of een a href wel werkt...

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 09:16

crisp

Devver

Pixelated

js303 schreef op 14 mei 2003 @ 18:39:
[...]


heeft dat behalve compatibaliteitsproblemen nog effect op het tonen en aanspreken van objecten in IE dan??
nee, IE ondersteund vanaf 5.0 document.getElementById. document.all kan je het beste enkel gebruiken als je IE4 nog wilt/moet ondersteunen, maar dan ook in combinatie met document.getElementById voor nieuwere en/of non-IE browsers:

JavaScript:
1
2
3
4
5
6
7
8
9
if (document.getElementById) {

  document.getElementById('divje').style.visibility = 'hidden';

} else if (document.all) {

  document.all[divje].style.visibility = 'hidden';

}


of nog mooier:
JavaScript:
1
2
3
4
5
6
7
8
9
10
function getElement(el) {

  if (document.getElementById) return document.getElementById(el);
  if (document.all) return document.all[el];

  // eventueel uitbreiden voor document.layers (NS4)

}

getElement('divje').style.visibility = 'hidden';
js303 schreef op 14 mei 2003 @ 18:40:
[...]
ik werk met onclicks die een js functie aanroepen.
laat eens wat zien dan, of zet je page online. Zo blijft het gokken en kunnen we ook niet controleren of het probleem zich ook in moderne browsers voordoet...

Intentionally left blank


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 09:16

crisp

Devver

Pixelated

js303 schreef op 14 mei 2003 @ 18:45:
he wacht even, ik heb nu die hele functie ge-remarked //, en als ik klik (waarna er vervolgens niks gebeurt) doet het probleem zich NOG voor. het lijkt erop alsof ik niet mag klikken als-ie de plaatjes herlaadt. heel raar. die onclick event verstoort het laden lijkt het wel.... kijken of een a href wel werkt...
Ik zou zeker geen a href gaan gebruiken. Ik vroeg dit omdat meestal dit soort problemen door het gebruik van javascript in een a href veroorzaakt worden...

[ Voor 49% gewijzigd door crisp op 14-05-2003 18:50 ]

Intentionally left blank

Pagina: 1