di: Alessandro Fulciniti 28 Giugno 2004
Aprire una pagina HTML in un'altra finestra del browser è una cosa abbastanza comune. Ci sono svariati motivi per volerlo fare. Per esempio, nella sezione pro.html.it che ospita questo articolo molti esempi e link si aprono in una nuova finestra, così da permettere all'utente di proseguire la lettura dell'articolo senza dover perdere il filo e dover ritornare attraverso il bottone indietro del browser. Personalmente ritengo che finestre con dettagli, esempi, codice, rimandi, o link esterni al sito spesso siano più gradite all'utente se aperte in una nuova finestra.
Il modo più semplice e noto per aprire un link in una finestra è per certi versi un metodo obsoleto:
<a href="http://www.html.it" target="_blank" title="Link esterno, si apre in una nuova finestra">
Se avete provato a validare le vostre pagine che usano target scritte in HTML o XHTML strict il validatore vi avrà risposto che non esiste l'attributo target. Una possibile soluzione è dichiarare un documento con dtd transitional oppure frameset. Certo si potrebbe pensare: perchè devo declassare i miei documenti per un solo attributo? Vedremo qui le possibili alternative che ci consentono di restare strict.
C'è da premettere che tutte le alternative al target richiedono, in forma più o meno leggera, l'uso del Javascript. La più semplice è senza dubbio la seguente, che richiede qualche carattere in più rispetto a target ma è altrettanto semplice ed efficace:
<a href="http://pro.html.it" onclick="window.open(this.href);return false" title="nuova finestra">home page</a>
Vediamo il risultato: questo è il link alla home
page e se avete Javascript abilitato, come il 90-95% degli utenti di internet,
dovrebbe aprirsi in una nuova finestra.
Questa soluzione, però, potrebbe non essere la più agile nella codifica,
vediamone altre.
In alcuni casi, ad esempio per una sezione di link esterni al sito, potrebbe venir utile evitare di replicare il codice dell'onclick per tutti i link. Supponendo di avere un div con id="links" il dom può essere utile per consentire l'apertura dei link presenti in tale div in una nuova finestra. Ecco il codice HTML, una semplice lista di link:
<div id="links">
<p>Link utili</p>
<ul>
<li><a href="http://www.google.it">google, il motore di ricerca</a></li>
<li><a href="http://world.altavista.com/">babelfish - traduzioni on line</a></li>
<!--ecc--!>
</ul>
onload=function(){
if(!document.getElementById || !document.getElementsByTagName) return;
ext=document.getElementById("links");
l=ext.getElementsByTagName("a");
for(i=0;i<l.length;i++)
l[i].onclick=function(){window.open(this.href);return(false)};
}
Da notare che se il div contenente i link esterni dovesse avere id diverso, vi basterà sostituirlo dove indicato in grassetto nel codice sopra. Ed ecco il risultato. Il codice Javascript dell'esempio è incorporato nella pagina, ma in situazioni reali sarebbe meglio metterlo in un file esterno.
Guida Progettazione siti webDall'analisi dei requisiti fino allo sviluppo e alla promozione:... |
Guida Pubblicare un sito webLe verifiche fondamentali da effettuare prima del lancio di un nuovo... |
Guida Architettura dell'InformazioneL'Architettura dell'informazione è la disciplina che permette di... |
Ogni settimana, direttamente nella tua e-mail: guide, articoli, tutorial e FAQ su Web Design e grafica per il Web.
Iscriviti alla newsletter
|
|
Corso Google AdWords Base27 Febbraio 2012 a Milano |
|
|
Corso Google AdWords Base28 Marzo 2012 a Roma |