• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Guida Trucchi per gestire i frames

Ignazio96

Utente Guru
Autore del topic
User Legend
9 Marzo 2008
10.985
155
Miglior risposta
0


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_trucchi-frames.gif


Vediamo ora il codice del nostro frameset

HTML:
Perfavore, Entra oppure Registrati per vedere i codici!

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:

HTML:
Perfavore, Entra oppure Registrati per vedere i codici!

2) Come faccio a creare un frameset valido in XHTML?

Il codice da usare è lievemente diverso da quello postato all'inizio di questo articolo:

HTML:
Perfavore, Entra oppure Registrati per vedere i codici!

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":

HTML:
Perfavore, Entra oppure Registrati per vedere i codici!

4) come faccio ad aprire un link a tutta pagina chiudendo il frameset?

Sempre utilizzando l'attributo target in questo modo:

HTML:
Perfavore, Entra oppure Registrati per vedere i codici!

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:

HTML:
Perfavore, Entra oppure Registrati per vedere i codici!

6) come faccio a chiudere una pagina composta da più frame?

Usa questo link:

HTML:
Perfavore, Entra oppure Registrati per vedere i codici!

7) Come faccio a gestire history.back() e history.forward() in relazione ad uno solo dei frame del mio frameset?

Basta specificare su quale frame eseguire la navigazione cronologica:

HTML:
Perfavore, Entra oppure Registrati per vedere i codici!

8) Come faccio a ricreare il frameset se qualcuno accede direttamente ad uno dei frame?

Per fare questo occorre far ricorso a Javascript. Inseriamo nei singoli frame una funzione come questa tra <head> e </head>:

HTML:
Perfavore, Entra oppure Registrati per vedere i codici!

9) E' possibile aggiornare due o più frames con un solo click?

Sì, grazie a javascript è possibile.

HTML:
Perfavore, Entra oppure Registrati per vedere i codici!

10) Come faccio a ricaricare automaticamente l'interno frameset?

E' sufficiente inserire questo semplice codice Javascript all'interno dell'intestazione (<head>...</head>) della pagina che crea il framset:

HTML:
Perfavore, Entra oppure Registrati per vedere i codici!

Fonte

Mrwebmaster
 
Tu hai detto
<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>
1) Se il browser non supporta i frames è possibile prevedere una pagina alternativa? io ho preso anche la seconda
<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>
ma dice non disponibile