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

Ricreare automaticamente un frameset

Link copiato negli appunti

Più volte negli articoli di approfondimento di questa lista abbiamo trattato dei frame e delle problematiche di gestione ad essi legati nella costruzione di un Website. Chi scrive è convinto della utilità di tali strumenti che, se ben dosati, danno risultati organizzativi apprezabili.

I detrattori dei frame trovano terreno fertile per le proprie critiche nei molti, troppi, siti che di tali strumenti fanno un uso smodato e inopportuno. Circoscrivendo il giudizio ai soli aspetti tecnici, la perplessità che spinge molti webdesigner a non servirsi dei frame è il discorso legato ai motori di ricerca. 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.html è il nome del file principale che costruisce il frameset e richiama i due documenti: A nel frame superiore e B nel frame inferiore:

figura

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

Javascript fornisce una soluzione a questo problema con uno script che fa della semplicità la sua arma vincente.

L'esempio si compone di 3 file:

  • esempio.htm
  • alto.htm
  • centrale.htm

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

sx.htm + alto.htm

Il file principale index.html non va modificato in alcuna parte ai fini di questo script. Al contrario è necessario agire sui due file richiamati nella struttura dei frame: sx.htm e alto.htm.

Si è detto della semplicità di questo javascript, che si risolve in sole quattro righe di codice comprese tra i campi <head> dei documenti sopracitati:

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

Inserito questo codice in entambi i documenti prova a richiamare i file sx.htm e alto.htm e vedrai che non sarà visualizzato il solo documento che hai cliccato, ma tutta la struttura del sito. Lo script, infatti, ha verificato che il documento richiamato è parte di una struttura a frame, ma che non è il file principale che la costruisce.

Se si fosse trattato di un motore di ricerca che linka una pagina parte di un frameset, il risultato sarebbe stato la visualizzazione dell'intero documento e non solo parte di esso.

Il file richiamato in sostituzione del documento corrente quando lo script capisce che il file è parte di un frameset è "index.html". Per fare un altro esempio, se la stessa cosa viene fatta per la home page di HTML.it lo script andrà cosi' modificato:

<script type="text/javascript" language="javascript">
if(self.name==top.name){
location.href="http://www.html.it"
}
</script>

Se provi a richiamare il file esempio.htm non c'è alcun messaggio di errore nè malfunzionamento, e il comportamente del frameset è assolutamente normale.

Ti consigliamo anche