Trucchi per gestire i Frames
Pagina 1 di 2
In questo articolo ci occuperemo dei buoni vecchi frames, una tecnica di realizzazione delle pagine web oggi un po' fuori moda che, tuttavia, continua ad essere molto usata e causa di parecchi mal di testa.
Scopo del nostro articolo sarà quindi quello di rispondere alle 10 domande più ricorrenti in tema di pagine coi frames.
Per chi ancora non conoscesse i frames invito alla lettura della relativa lezione della guida HTML in cui viene illustrato sinteticamente l'utilizzo del tag frameset.
Dato per scontato che il lettore conosca la sintassi dei frames partiamo dalla definizione di una semplicissima pagina di esempio composta da due frames verticali come da immagine qui sotto:

<html> <head> <title>Titolo della pagina...</title> </head> <frameset cols="150,*"> <frame src="menu.html" name="menu"> <frame src="corpo.html" name="corpo"> </frameset> </html>Seguono 10 domande e relative risposte sull'uso dei frames.
1) Se il browser non supporta i frames è possibile prevedere una pagina alternativa?
Certo! E' sufficiente utilizzare il tag <noframes> in questo modo:
<frameset cols="150,*">
<frame src="menu.html" name="menu" />
<frame src="corpo.html" name="corpo" />
<noframes>
<body>
<p>Questa è una pagina alternativa...<br>
visualizzata dai browser che non supportano il frameset!</p>
</body>
</noframes>
</frameset>
2) Come faccio a creare un frameset valido in XHTML?
Il codice da usare è lievemente diverso da quello postato all'inizio di questo articolo:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
<head>
<title>Fameset in XHTML</title>
</head>
<frameset cols="150,*">
<frame name="menu" src="menu.html"/>
<frame name="corpo" src="corpo.html"/>
<noframes>
<body>
<p>Questa pagina usa i frame...</p>
</body>
</noframes>
</frameset>
</html>
3) come faccio ad inserire un link in un frame che si apra in un altro frame?
Semplicissimo. Basta utilizzare l'attributo target del tag <a>.
Vediamo un esempio di link che, inserito nella pagina "menu.html" apre un documento all'interno dell'altro frame "corpo.html":
<a href="nuova_pagina.html" target="corpo">Link</a>4) come faccio ad aprire un link a tutta pagina chiudendo il frameset?
Sempre utilizzando l'attributo target in questo modo:
<a href="nuova_pagina.html" target="_parent">Link</a>5) E' possibile mostrare i risultati di un form all'interno di un frame specificato?
Sì, sempre utilizzando l'attributo target nei modi visti sopra. Ad esempio supponiamo di voler inserire un modulo di ricerca all'interno di "menu.html" che mostri i risultati nell'altro frame::
<form method="post" action="cerca.cgi" parent="corpo"> ... </form>







