Newsgroup: it.comp.lang.javascript
Titolo: Passare riferimento tra finestre...

Ma non delle finestre (window.opener), quanto di un controllo in
particolare.
Mi spiego meglio: ho una pagina che contiene una serie di input box. Per una
somma di motivi, non so' a priori quante ce ne sono ne' come si chiamano
tutte. (pagina generata dinamicamente)
Diciamo che ogni input box ha, di fianco, un link che apre una nuova
finestra. Questo link, ovviamente, sa a quale input box corrisponde. Quello
che vorrei e' che venga aperta la nuova finestra e gli venga passato il
riferimento al controllo a cui e' riferito il link...
Esempio:
(pseudo code)
<td>
<input type="text" name="a" id="a">
<A HREF="" onclick="javascript:Aprifinestraepassa(a);"> link </a>
</td>
<td>
<input type="text" name="h" id="h">
<A HREF="" onclick="javascript:Aprifinestraepassa(h);"> link </a>
</td>
<td>
<input type="text" name="d" id="d">
<A HREF="" onclick="javascript:Aprifinestraepassa(d);"> link </a>
</td>
<td>
<input type="text" name="z" id="z">
<A HREF="" onclick="javascript:Aprifinestraepassa(z);"> link </a>
</td>
Ho provato a dichiarare una variabile e valorizzarla dentro 
Aprifinestraepassa, ma:
1) Non sono sicuro di averlo fatto bene...
2) Non ho idea di come ripescarla dall'altra pagina ^__^;;;;
Grazie a tutti per l'eventuale aiuto :-)

 <A HREF="" onclick="javascript:Aprifinestraepassa(a);"> link </a>
Aprifinestraepassa('a') //così passi l'id
 function Aprifinestraepassa(IDControllo) {
  //immagino farà un window.open:
  window.open("tuapagina.htm?"+a);
E nella tuapagina.htm:
 var
tuorif=opener.document.getElementById(window.location.search.substr(1));
alert(tuorif.value);
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.

 Aprifinestraepassa('a') //così passi l'id
Stavo pensando a un qualcosa del tipo
 ApriFinestraEPassa(
this.parentNode.firstChild.id
);
o qualcosa di simile, se la struttura è sempre questa. Così hai un qualcosa
di generico e non devi scrivere sempre l'id (anche se, dato che non sai a
priori il numero di text, a naso arrivi da una elaborazione server-side e
quindi scrivere l'id non ti dovrebbe creare problemi).


 <A HREF="" onclick="javascript:Aprifinestraepassa(a);"> link </a>
e lo faccio con le parole di ZER0:
[quote author="ZER0" 
messageId="
he9mpwmo...@ID-171124.news.individual.net
"]
  "javascript:" è uno pseudo-protocollo. Non va inserito 
  negli event-handler, che sono già "javascript". Va inserito 
  solo quando si tratta di location (vedasi, l'attributo href 
  ad esempio).
[/quote]
-- 
Nando [?]
Ex-Apostolo della Ex-Prova

> <A HREF="" onclick="javascript:Aprifinestraepassa(a);"> link </a>
Allora ci sarebbero anche i tag e proprietà scritte in maiuscolo, e manca
un "return false" (così com'è mi sa che oltre ad aprire la finestra cambia
anche pagina). Ma, come lui ha detto, era uno "pseudocodice" per spiegare.
-- 
"e mai che mi sia venuto in mente
 di essere più ubriaco di voi
 di essere molto più ubriaco di voi"
									  F.D.A.

 un "return false" 
Quelli non sono veri e propri "errori" in verità, quanto meno non lo sono al
livello in cui lo è usare lo pseudo-protocollo in un event-handler; che è
proprio un errore di concetto e di comprensione del binding che c'è tra il
codice di markup e lo scripting.
La scrittura maiuscola può derivare dalla vecchia scuola; e la mancanza di
return false può essere una dimenticanza o una distrazione. Tant'è che si
renderà subito conto, in un codice reale, se ne ha necessità.
Come ha detto, è uno "pseudo-codice" quindi avrà sicuramente omesso delle
parti. 
Mentre l'uso dello pseudo-protocollo in tale frangente è un errore vero e
proprio. Dato che non l'ha neppure "omesso", significa che l'ha scritto di
proposito. Ed è giusto che comprenda quindi la sua natura, che evidentemente
ha frainteso.
-- 
~ Religions change, but beer and wine remain.
(Harvey Allen)

 codice di markup e lo scripting.
beh, se mette il javascript: dovrebbe funzionare, se manca il return false
ha un comportamento errato ... comunque ok, ho capito cosa vuoi dire: se è
uno pseudocodice può mancare qualcosa ma non esserci qualcosa di errato.


 uno pseudocodice può mancare qualcosa ma non esserci qualcosa di errato.
Esatto. 
-- 
- Vuoi tu questo corpo?
- E' una domanda trabocchetto?"

 [/quote]
Siete dei tritaco... ;-D
Scherzi a parte, l'abitudine e' dura a morire. Anche perche' ZER0 me l'ha 
detto solo ieri :-)
Cmq, era solo nello pseudocode. Il codice normale era a posto... :-P

 quindi scrivere l'id non ti dovrebbe creare problemi).
Si, infatti, fa tutto il codice server-side. In ogni caso, grazie per le 
risposte: provato, funziona perfettamente :-)

 Siete dei tritaco... ;-D
Eh... vedi a far del bene cosa si ricava... :)
