Frames - Verdere mogelijkhedenActie in een ander frameDe leukste mogelijkheid van frames is die om een actie van de gebruiker een gevolg te laten hebben in een ander frame. Als de gebruiker dan dus op een linkje klikt in een frame, verschijnt er in een ander frame een nieuw HTML document, of een plaatje, of wat dan ook.Dat geeft bijvoorbeeld de mogelijkheid om een smal frame te maken aan de rand van het venster, met daarin wat drukknoppen, of een `inhoudsopgave'. Als er dan op een knopje of linkje wordt geklikt, kan in het hoofdvenster de relevante pagina worden getoond. Een voorbeeld daarvan kan je vinden op mijn EK'96 pagina; de linkerkant bestaat uit een menu van knoppen, die de rechterkant van het scherm besturen. Netscape weten welk frame hij moet gebruiken als uitvoerframe. Daarvoor is het nodig om frames een naam te geven, en om vervolgens bij een referentie de naam op te geven van het frame waarin het resultaat moet worden getoond.
Het geven van de naam aan de frames gaat via het
<frame> tag in de frameset:
Als nu in left.htm een referentie staat op deze manier: <a href="landen.htm" target="content">Landen-Info</a>wordt de pagina landen.htm in het rechterscherm getoond als er op "Landen-info" wordt geklikt. Je kan een standaard-target opgeven aan het begin van het document, zodat je niet bij iedere link het target tag hoeft te zetten. Zet direct na de <body>-definitie de term <base target="content">.
Truuk 1: Als je de naam van een niet-bestaand frame opgeeft wordt een nieuw window van Netscape geopend. Als je net op de EK'96 link hebt geklikt zal je dat gemerkt hebben. De link ziet er zo uit:
Truuk 2: Als je als target "_top" opgeeft, wordt weer het hele window van Netscape gebruikt i.p.v. je frames. Als je "_parent" gebruikt, gaat de link een frameset terug. Als je "_self" gebruikt, blijft de link in hetzelfde window (handig als je de <base target=xxx> wil laten negeren). Uiterlijk van frames: Scrollbalkjes enzoPer frame kan je opgeven of je wel of geen scrollbalkje wil. Je kan ook opgeven of de gebruiker de frames van grootte mag veranderen.Geneste framesetsUiteraard kan je binnen een frameset een nieuwe frameset definiëren. De volledige indeling van de EK'96 pagina is als volgt:
<frameset rows=145,*>
<frame noresize scrolling=no src="head.htm">
<frameset cols=148,*>
<frame src="left.htm" scrolling=no>
<frame src="default.htm" name="content">
</frameset>
</frameset>
In het eerste frame heb ik scrolling=no gezet; ik weet zeker dat
het head.htm bestand precies in de 145 pixels past die er voor staan. Ook
mag die kop niet van grootte worden veranderd, ik wil het logo altijd in
beeld houden.
De tweede row bestaat zelf uit een frameset, met twee kolommen; de linker bevat de menu-opties en hoeft niet te scrollen. Resizen mag wel; als mensen een klein scherm hebben is het misschien gewenst om het "content" frame wat ruimer te maken. |