Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Ricreare un frameset con pagina corrente

Link copiato negli appunti

Nel numero 22 del 31 maggio 1999 abbiamo descritto uno script che consente di ricreare la struttura del frameset quando si richiama un singolo frame. Per comprendere pienamente le peculiarità di un tale script ribadiamo alcuni concetti espressi in quell'occasione.

Come noto, i motori di ricerca non sempre riescono ad indicizzare perfettamente un sito diviso in frame. Molto spesso invece di linkare il file che crea il frameset (solitamente index.html), richiamano i singoli frame che tale struttura vanno a costruire. Il risultato è spesso disastroso, con pagine senza menu o link di navigazione. In ultima analisi una ricerca condotta in questi termini rischia seriamente di compromettere i risultati di un Website e di far perdere potenziali visitatori.
Semplificando, facciamo riferimento al rudimentale grafico che segue. Index.htm è il nome del file principale che costruisce il frameset e richiama i due documenti: A nel frame superiore e B nel frame inferiore.

Se il motore di ricerca risponde con la pagina index.htm non c'è alcun problema. Ma se il motore di ricerca trova il documento A o B?

Precedentemente abbiamo mostrato come caricare l'intera struttura del frameset quando l'utente raggiunge il documento A o B. Cio' avveniva, pero', con un piccolo bug che in parte limitava l'utilità dello script: il browser rimandava non alla pagina richiamata, ma sempre e comunque alla home page. In altre parole se si accedeva ad un documento interno al sito, il Javascript rimandava alla prima pagina, con la conseguenza che il visitatore doveva navigare nel Website per raggiungere finalmente la pagina trovato sul motore di ricerca.
Lo script che presentiamo riprende quell'esempio e ne migliora gli effetti, eliminando il bug sopracitato e rimandando alla stessa pagina linkata.

L'esempio si compone di 2 file:

  • esempio.htm [una semplice struttura a frame che punta a menu.htm e a prima.htm]
  • menu.htm [frame di sinistra]
  • prima.htm [pagina principale di destra caricata dal browser nel frame]
  • dentro.htm [pagina interna non linkata da index.htm]

Per una più semplice comprensione del presente script fai continuamente riferimento al file sopracitato, verificando le procedure e i dati espressi. Solo in questo modo, con un continuo confronto, comprenderai le peculiarità di questo Javascript.

Perchè lo script funzioni è necessario aggiungere su tutte le pagine interne diverse da prima.htm, il seguente codice:

<script type="text/javascript" language="javascript">
if(self.name==top.name){
location.href="esempio.htm?" + document.URL
}
</script>

Questo codice va aggiunto nelle pagine: menu.htm e dentro.htm tra i tag <head> del documento.

Sulla prima pagina il codice da aggiungere in testata invece sarà il seguente:

<script type="text/javascript" language="javascript">
if(self.name==top.name){
location.href="esempio.htm"
}
if(top.location.search!='')
{self.location.href=top.location.search.substr(1)}
</script>

dove la prima parte serve a caricare la struttura a frame, mentre la seconda a reindirizzare il frame basso al documento chiamato originariamente.

Affinchè il tutto funzioni è necessario che i riferimenti alla pagina principale (all'interno del menu) rimandino non alla pagina interna ma all'intera struttura.

Ti consigliamo anche