Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 10 di 44
  • livello principiante
Indice lezioni

Modifica delle pagine "madre" e "figlia"

Cambiare la pagina visualizzata nella finestra "madre" e nella finestra "figlia"
Cambiare la pagina visualizzata nella finestra "madre" e nella finestra "figlia"
Link copiato negli appunti

Abbiamo visto che dalla pagina in cui è incorporato il filmato, possiamo modificare il contenuto della pagina stessa, e di tutte le altre pagine che fanno parte dello stesso frameset. Questo è possibile grazie a delle proprietà comuni a tutte le pagine html, top, self, parent.

Oltre a questi riferimenti, ne abbiamo a disposizione un altro paio, molto interessanti. Il primo è il riferimento alla pagina che ha aperto, come popup, quella da cui vogliamo eseguire il codice: opener. Il secondo, il cui nome viene definito dall'utente, è quello alla pagina che viene aperta come popup.

.opener

Per questo esempio, non definiremo il codice javascript nella pagina html, ma lo eseguiremo direttamente dal filmato: ricordo però che definire la funzione nella pagina e richiamarla dal filmato, o eseguire il codice direttamente in Flash, ha gli stessi identici effetti (tranne talvolta la necessità del void(0)).

Guardando l'esempio, la prima pagina che ci si presenta contiene un filmato in Flash, all'interno del quale c'è un pulsante con associato il seguente script:

on(release){

getURL("javascript:window.open('pagina3.html','PaginaFiglia',[attributi]);void(0)");

dove, al posto di [attributi], è scritto (omesso per ragioni di spazio):

toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes

vedi qui il codice intero

Il pulsante apre, come popup, una nuova pagina, all'interno della quale c'è un altro filmato. In questo filmato sono presenti due pulsanti: il primo serve a cambiare il contenuto della pagina madre, il secondo a chiuderla. I codici:

on(release){

getURL("javascript:window.opener.location.href='pagina.html';void(0)");

}

on(release){

getURL("javascript:window.opener.close();void(0)");

}

Il risultato:

visualizza l'esempio | scarica l'esempio

Notazione importante:

se la pagina madre è a sua volta una popup, alla richiesta di chiusura dalla pagina figlia, si chiuderà silenziosamente. Se invece è una pagina principale del browser, apparirà l'alert per la richiesta di conferma.

.pagina figlia

Per modificare invece la pagina aperta come popup, dobbiamo salvare un riferimento ad essa al momento dell'apertura. Lo facciamo attribuendolo come valore ad una variabile, che rimane nella pagina html.

Anche in questo esempio, la prima pagina che troviamo contiene un filmato. Al primo pulsante è associato il seguente script:

on(release){

getURL("javascript:figlia = window.open('pagina3.html','PaginaFiglia',[attributi]);void(0)");

}

Apre la popup, e ne salva un riferimento nella variabile figlia. Al secondo pulsante, per la modifica del contenuto, è associato:

on(release){

getURL("javascript:figlia.location.href='pagina.html';void(0)");

}

Al terzo pulsante, per la chiusura:

on(release){

getURL("javascript:figlia.close();void(0)");

}

visualizza l'esempio | scarica l'esempio

Notazioni importanti:

1. il nome della variabile figlia è del tutto arbitrario, e quindi può essere sostituito senza alcun problema. L'importante è essere coerenti nell'utilizzo: se salviamo il riferimento nella variabile pippo, dobbiamo usare pippo per la modifica della pagina figlia.

2. quando per modificare la pagina figlia clicchiamo nuovamente sulla pagina madre, la pagina figlia scompare sotto quest'ultima. Per fare in modo che torni davanti, dobbiamo imporre il focus alla nuova pagina. Lo facciamo mettendo nel body:

<body onLoad="self.focus()">

Nel nostro caso, ad esempio, la modifica va fatta in "pagina.html", quella con cui modifichiamo il contenuto della pagina figlia.

Ti consigliamo anche