Invece di spiegare come passare i dati, affrontiamo una situazione concreta.
Immaginiamo di avere un form con campi di tipo button e di voler indicare ad una finestra o alla pagina successiva quale tasto è stato premuto.
Inseriamo i tasti e poi dichiariamo nella sezione head una variabile globale Tasto:
<script type="text/javascript"><!--
var tasto=null;
//--></script>
ad ogni tasto associamo l'evento:
onclick="tasto=valore"
dove valore sarà uguale a 1 nel primo tasto, uguale a 2 nel secondo e uguale a 3 nel terzo.
Immaginiamo due casi:
Nel primo caso abbiamo solo un problema di trasferimento di dati perché la finestra madre, che contiene il valore da passare, conserva sempre questo valore finché non viene chiusa per cui basta inserire una riga di codice del tipo:
window.opener.tasto
per indicare: "prendimi il valore della variabile tasto contenuto nella finestra che ha aperto la finestra secondaria".
Clicca su uno dei tre tasti e poi clicca qui per verificare
Nel secondo caso, invece, possiamo utilizzare una finestra con dei frame (anche una finestra con un unico frame va bene) e conserviamo la variabile nella finestra top (quella che contiene i frame) e la richiamiamo dalle altre finestre con le proprietà parent.nomevariabile oppure top.nomevariabile.
I frame, però, sono spesso sconsigliati e restano scarsamente adoperati su siti di un certo livello dove la possibilità di trasferire dati è quella di utilizzare il cookie o l'URL.
In quest'ultimo caso passiamo il valore alla pagina successiva attraverso URL e scriviamo il seguente codice HTML ad un link:
<a href="prova25b.htm?tasto">
si noti come ci sia il valore indicato dopo il punto interrogativo. Questo tipo di codifica è quella utilizzata dal Perl e da altri linguaggi che operano sul server, ma qui può essere adattata ad HTML (resta solo un'annotazione in quanto questo passaggio non sembra funzionare con IE4).
Il problema ritorna quando bisogna recuperare il valore nella pagina successiva poiché il browser legge l'URL come una sola stringa. In tal caso bisogna utilizzare le proprietà e i metodi dell'oggetto String. Poniamo la locazione in una variabile:
var ausilio = String(this.location);
var tasto = ausilio.charAt(ausilio.lastIndexOf("?")+1);
nella prima riga viene preso l'URL e trasformato in stringa (ricordate i tipi di variabili?), nella seconda si legge il carattere in posizione successiva a quella dell'ultimo punto interrogativo della stringa.
Premere uno qualsiasi dei tre tasti e cliccare qui (fare attenzione all'URL della pagina successiva)
PhantomJS, headless browser per test con JavascriptIl tool ideale per realizzare, da terminale, operazioni in remoto su... |
Creare e leggere QR Code in JavaScriptApplicazioni 'QR Code enabled' per il Web e per il mobile,... |
Jquery UI Map: web-mapping con Google Maps e jQueryUn plugin di jQuery UI per intefacciare applicaizoni Web/mobile con... |
Scrollorama e Scrolldeck, slideshow d'effetto con jQueryPlugin jQuery per ottenere Slideshow con diversi effetti di scrolling |
jCanvas, un primo semplice graficoAlla scoperta della libreria jCanvas, per semplificare il disegno e... |
Guida Node.jsIl framework che permette di per usare V8, l'interprete JavaScript... |
Canvas, guida ai frameworkCanvas, tra gli elementi di HTML5 è forse quello di maggior impatto.... |
Guida Javascript: tecniche avanzateUna guida dal taglio pratico per approfondire la programmazione a... |
Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso JQuery e Ajax per Webmaster03 Luglio 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |