Hallo,
Ik heb ergens in een pagina de hoogte in pixels van een frame nodig, of eigenlijk de hoogte van de hoogste DIV die in het frame zit. Daarna zet ik alle hoogten van alle DIVS op die hoogste hoogte, zodat alles netjes even hoog is. Op IE doe ik dat zo:
Die -85 is ff niet zo belangrijk. Door ze eerst allemaal op 0 te zetten en daarna pas de hoogte te meten voorkom je dat het frame zo hoog wordt als de hoogste body die er ooit in heeft gezeten (de inhoud van het frame wordt immers overal met innerHTML gezet, refreshed dus NOOIT).
Maar op Netscape 6 werkt dit dus niet. De hele innerHTML truucendoos wel enzo, maar het bepalen van de hoogte van m'n body wat met scrollHeight op IE gebeurt. Dit zou volgens de API docs moeten met document.body.offsetHeight, maar die geeft de hoogte van het zichtbare gedeelte van het frame weer, itt de werkelijke hoogte.
Er moet toch ergens een waarde bij Netscape bekend zijn over de hoogte van het frame?? Hij scrollt immers prima. Probleem blijft dus dat de 2 laagste DIV's niet hoger worden dan de hoogte van het zichtbare gedeelte van het frame. En dat mag niet, want ze hebben allemaal een achtergrondkleur die gewoon netjes moet uitvullen tot aan beneden.
Ik heb ergens in een pagina de hoogte in pixels van een frame nodig, of eigenlijk de hoogte van de hoogste DIV die in het frame zit. Daarna zet ik alle hoogten van alle DIVS op die hoogste hoogte, zodat alles netjes even hoog is. Op IE doe ik dat zo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| function fillOut(dontscroll)
{
if(!dontscroll)
{
parent.main.document.body.scrollTop = 0;
}
var leftlist = parent.main.document.getElementById("leftlist");
var midlist = parent.main.document.getElementById("midlist");
var rightlist = parent.main.document.getElementById("rightlist");
leftlist.style.height = "0px";
midlist.style.height = "0px";
rightlist.style.height = "0px";
height = parent.main.document.body.scrollHeight;
leftlist.style.height = height + "px";
midlist.style.height = (height-85) + "px";
rightlist.style.height = (height-85) + "px";
} |
Die -85 is ff niet zo belangrijk. Door ze eerst allemaal op 0 te zetten en daarna pas de hoogte te meten voorkom je dat het frame zo hoog wordt als de hoogste body die er ooit in heeft gezeten (de inhoud van het frame wordt immers overal met innerHTML gezet, refreshed dus NOOIT).
Maar op Netscape 6 werkt dit dus niet. De hele innerHTML truucendoos wel enzo, maar het bepalen van de hoogte van m'n body wat met scrollHeight op IE gebeurt. Dit zou volgens de API docs moeten met document.body.offsetHeight, maar die geeft de hoogte van het zichtbare gedeelte van het frame weer, itt de werkelijke hoogte.
Er moet toch ergens een waarde bij Netscape bekend zijn over de hoogte van het frame?? Hij scrollt immers prima. Probleem blijft dus dat de 2 laagste DIV's niet hoger worden dan de hoogte van het zichtbare gedeelte van het frame. En dat mag niet, want ze hebben allemaal een achtergrondkleur die gewoon netjes moet uitvullen tot aan beneden.