Vi è mai capitato di navigare in un sito che ricorra agli IFRAME per la visualizzazione di alcuni contenuti? A parte il fatto che il loro utilizzo è – a mio parere – caldamente sconsigliabile, mi capita spesso di dover fare manutenzione a vecchi siti Internet che ricorrono agli IFRAME e di ritrovarmi in situazioni simili a quella che sto per descrivere.
- mi trovo in una pagina che mostra – all’interno di un grande IFRAME verticale – un lungo form da completare
- riempio il form e scorro la pagina verso il basso via via che compilo i campi
- premo il pulsante di submit che sta (come è giusto che sia) sul fondo della pagina contenuta nell’IFRAME
- a questo punto, il risultato dell’operazione viene mostrato in una pagina di risposta che resta nello stesso IFRAME, ma il cui incipit – immaginando una pagina di conferma di dimensioni più contenute – si trova al di fuori dello schermo: sono così costretto a scorrere la pagina verso l’alto fino a raggiungere la risposta ottenuta
La soluzione a questo tipo di problema è semplice e consiste nell’inserimento di un ancoraggio in testa alla pagina che contiene l’IFRAME (pagina madre). Ad esempio:
<a name="my_top"></a>
Questo ci permette di avere un punto di riferimento che può essere agevolmente richiamato dalla pagina contenuta nell’IFRAME stesso. Il richiamo all’ancoraggio va effettuato mediante una semplice istruzione javascript che va eseguita al caricamento della pagina di risposta:
<body onload="parent.location.href=parent.location.href+'#my_top'">
Da notare il richiamo della pagina madre (quella che contiene l’IFRAME) mediante l’istruzione javascript `parent`.