aprire una nuova finestra dalla finestra principale

Argomenti trattati: aprire una finestra tramite il metodo open() dell'oggetto window.

Spesso in una pagina web è necessario inserire una finestra "pop-up", di dimensioni variabili, a volte un pò fastidiosa per l'utente, che compare in alto a sinistra della finestra principale e che da essa è aperta. La finestra principale, ricordando le proprietà delle finestre, ne è pertanto l'opener.
Le finestre aperte o da un evento generato dall'utente, o per scopi pubblicitari al caricamento della pagina, o per qualsiasi altro motivo, possono avere le funzioni più disparate. Qui verrà esaminato il metodo più comune relativo all'apertura di un'altra finestra.
Sarà abbastanza chiaro che il metodo associato all'apertura di una nuova finestra è il metodo open().
La sintassi può essere così suddivisa:

window.open("indirizzo della nuova finestra", "nome della nuova finestra", opzioni);

var MiaVar=window.open("indirizzo","nome",opzioni);

Tutti e tre gli argomenti del metodo open possono essere omessi. Ecco cosa accade se viene aperta una finestra scrivendo nel codice semplicemente: 
window.open();

Sottolineato e chiarito che molto spesso dettagli differenti nella visualizzazione e nella generazione degli oggetti sono del tutto dipendenti dal browser usato, sarà apparsa  una finestra il cui indirizzo poteva essere nullo, o del tipo: "about:blank ", nella quale può essere aperta una pagina differente, (ad esempio http://www.miapagina.htm ), che corrisponde alla funzione di apertura di una nuova pagina del browser. MSIE e Netscape, sono infatti in grado di aprire più di una finestra, e le varie finestre possono essere contemporaneamente gestite. Questo legame apertura/gestione di finestre supportato dai browsers, è completamente rispecchiato nel metodo open di JavaScript.

Rispetto a quanto detto, la finestra aperta con window.open(); è una normalissima finestra di visualizzazione di documenti HTML, che però non contiene nulla, se non i tag <HTML></HTML>; essa è pertanto vuota.

Una delle cose che possono essere fatte per riempirla può essere quella di inserire un URL o un indirizzo relativo  nel parametro indirizzo:

window.open("http://www.MIA_URL.it","");
oppure :
window.open("http://digilander.libero.it/js_passopasso/esempi/pag_prova.html","");

In quest'ultimo caso: 

Può darsi però che io voglia aprire un documento in una certa fienstra impostando il nome della finestra target attraverso JavaScript. 
Forse è utile ricordare che quando si scrive un collegamento del tipo: 
<a href="indirizzo_del_documento" target="nome_ della_ finestra_ obiettivo">Testo dell'ancoraggio</href>
il target può avere differenti valori, tre cui in particolare il nome di una finestra o di un frame, nei quali sarà visualizzato il documento che verrà aperto cliccando sul collegamento.
Per questa ragione, scrivendo:
window.open("","pagina_di_prova");
e specificando un collgamento del tipo:
<a href="pagprova.htm" target="pagina_di_prova"> visualizza un'altra pagina nella finestra appena aperta </href>
la pagina di prova sarà aperta nella finestra che prima conteneva un documento vuoto:

visualizza un'altra pagina nella finestra appena aperta 

In alcuni browser, questo comporta però che vengano aperte 2 finestre.

Riguardo i parametri della pagina, essi gestiscono:

Considerando il codice, rispettivamente:

window.open("http://digilander.libero.it/js_passopasso/esempi/pag_prova.html","pagina_di_prova","directories=yes,heigth=300, width=400" );

La cosa strana è che, in effetti, se vengono specificati alcuni parametri vengono automaticamente impostati a "no" gli altri. Infatti, nell'esempio visualizzato dal tasto open +  parametri, mancano alcuni elementi della finestra con tutte le opzioni, come la barra di scorrimento e la barra dei menu. Un esempio completo di opzioni è:

'directories=yes,heigth=300,location=no,menubar=yes,resizable=yes,scrollbars=no,status=yes,toolbar=no,width=400'

 

Attenzione!!! Se si inseriscono degli spazi tra le opzioni di visualizzazione della finestra, molto spesso si ottiene di non far aprire nessuna finestra, o di non visualizzare ciò che si crede di aver correttamente impostato!!! Questo è vero in particolare utilizzando Netscape Navigator.

Frequentemente, come già accennato, il metodo open viene assegnato ad una variabile. In questo modo, se ci si riferisce alla finestra aperta nel codice della finestra principale, lo si fa relativamente alla variabile considerata:

var newWindow=window.open(....);

Un altra possibilità è quella di aprire delle finestre dipendenti da quella principale.


Torna all'inizio | Home