Ik heb de volgende frames pagina (ja frames):
In het "top"-frame staan een aantal images. Deze images moeten veranderen aan de hand van de pagina die in het "contents"-frame staan. Stel dat er een pagina genaamd "p3" geladen wordt in het "contents"-frame. Dan moet het plaatje in het "top"-frame veranderen van p3_off.jpg naar p3_on.jpg om te laten zien dat men op de p3-pagina is aanbeland.
Ik gebruik hiervoor het volgende script (met dank aan McVirusS) dat in de frameset-pagina wordt geladen:
De functie activateImage weet welk id hij moet hebben doordat deze code in de pagina's van het "contents"-frame staat, ik neem weer het voorbeeld van "p3":
Alle plaatjes in het "top"-frame worden op deze manier aangeduid:
En dan nu het probleem:
In Firefox werkt dit script zonder enig probleem. In IE wil het voor geen meter, ik krijg dan de fout: "document.GetElementById(...) null or not an object".
Iemand enig idee waar dit aan zou kunnen liggen? Ik kom er niet meer uit..
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| ----------------------------- | | top | | | | | | | |-----------------| | | | | | | | | | | | | | m | | | | | e | contents | | | | n | | | | | u | | | | | | | | | | | | | | | | | | | | | | | | | | | | ----------------------------- |
In het "top"-frame staan een aantal images. Deze images moeten veranderen aan de hand van de pagina die in het "contents"-frame staan. Stel dat er een pagina genaamd "p3" geladen wordt in het "contents"-frame. Dan moet het plaatje in het "top"-frame veranderen van p3_off.jpg naar p3_on.jpg om te laten zien dat men op de p3-pagina is aanbeland.
Ik gebruik hiervoor het volgende script (met dank aan McVirusS) dat in de frameset-pagina wordt geladen:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| var sImages = Array(); sImages[ "p1" ] = Array( "img/nav/p1_off.jpg", "img/nav/p1_on.jpg" ); sImages[ "p2" ] = Array( "img/nav/p2_off.jpg", "img/nav/p2_on.jpg" ); sImages[ "p3" ] = Array( "img/nav/p3_off.jpg", "img/nav/p3_on.jpg" ); sImages[ "p4" ] = Array( "img/nav/p4_off.jpg", "img/nav/p4_on.jpg" ); sImages[ "p5" ] = Array( "img/nav/p5_off.jpg", "img/nav/p5_on.jpg" ); sImages[ "p6" ] = Array( "img/nav/p6_off.jpg", "img/nav/p6_on.jpg" ); sImages[ "p7" ] = Array( "img/nav/p7_off.jpg", "img/nav/p7_on.jpg" ); sImages[ "p8" ] = Array( "img/nav/p8_off.jpg", "img/nav/p8_on.jpg" ); function activateImage( id ) { for( key in sImages ) { if( key != id ) { document.getElementById( key ).src = sImages[ key ][0]; } else { document.getElementById( key ).src = sImages[ key ][1]; } } } |
De functie activateImage weet welk id hij moet hebben doordat deze code in de pagina's van het "contents"-frame staat, ik neem weer het voorbeeld van "p3":
HTML:
1
| <body onload="parent.frames['top'].activateImage('p3');"> |
Alle plaatjes in het "top"-frame worden op deze manier aangeduid:
HTML:
1
| [img]"img/nav/p3_off.jpg"[/img] |
En dan nu het probleem:
In Firefox werkt dit script zonder enig probleem. In IE wil het voor geen meter, ik krijg dan de fout: "document.GetElementById(...) null or not an object".
Iemand enig idee waar dit aan zou kunnen liggen? Ik kom er niet meer uit..