Aprire un file sempre nel frameset originale
Un grosso problema in cui si rischia di incorrere utilizzando la tecnologia dei frame per un sito è quella di trovare su un motore di ricerca pagine indicizzate ed estratte dal database che, una volta aperte, non compariranno nel frameset originale, nel nostro caso index.htm, rischiando di perdere il senso grafico del lavoro, oppure aprendo file che da soli sembrano non aver senso, come il menu o l'intestazione.
Javascript permette di risolvere questo non indifferente problema con un semplicissimo script da includere in tutti i file del sito, naturalmente escluso il frameset index.htm.
Per evitare un domani di dover correggere pagina per pagina lo script in caso di doverosi cambiamenti strutturali del sito, ad esempio se il file iniziale non dovesse più chiamarsi index.htm bensì default.htm, includiamo lo script in un file esterno, ad esempio apri_frames.js, e lo richiamiamo su tutte le pagine tra i Tag <head> e </head>, come predetto:
<script language="javascript" src="apri_frames.js"></script>
oppure fornendo il percorso relativo o assoluto del file.
Il seguente codice rappresenta lo script che utilizzeremo per lo svolgimento della suddetta funzione:
if (window.location == parent.location) {
location.href = "http://www.server.it/index.htm";
}
Impostiamo lo script al caricamento della pagina, imponendo che se l'indirizzo assoluto del file appena aperto è uguale all'indirizzo di un file che viene richiamato in un frameset, allora creeremo un link verso il file index.htm in cui abbiamo costruito i frameset, abbiamo utilizzato un indirizzo assoluto, possiamo anche solo utilizzare il nome del file senza l'URL completo, ma non sapendo come si comportano i vari motori di ricerca, rischieremmo di incorrere in un errore 404, ovvero file non trovato, consiglio quindi di utilizzare il path completo come nell'esempio.
Insomma, grazie all'oggetto parent possiamo comodamente lavorare con i frame, ottenendo funzionalità che col semplice Html non potremmo sfruttare, presento ora una carrellata di esempi pratici e di ricorrente utilizzo.