Newsgroup: it.comp.lang.javascript
Titolo: Problematica IFRAME

ciao a tutti,
 
torno sotto con un problema simile ma diverso a quello precedente.
 
Ho bisogno di comunicare non più tra due frames ma tra due iframe è 
possibile?
 
ho questa struttura:
 
<form  id="Totale">
 
    <iframe id="Articoli">
 
    <iframe id="Omaggi">
 
</form>
 
dentro ogni frame c'è un form
 
mi piacerebbe che mentre clicco su un bottone dentro iframe Articoli
 
mi facesse un submit sul form di Omaggi.
 
 
Posso farlo con qualche istruzione diretta o devo sfruttare il form 
contenitore (id=Totale)?
 
grazie.
 

 possibile?
 
Non fa differenza, se invece che `id` utilizzi `name` per gli iframe.
Oppure puoi usare l'indice per riferirti ad essi (window.frames[0], per
esempio). Se utilizzi solo `id`, devi fare qualche passaggio in piů. Se
hai name, hai:
 
    window.frames["Omaggi"]
 
per accedere alla finestra contenuta nel frame "Omaggi". Se hai id:
 
    document.getElementById("Omaggi").contentWindow
 
Io continuo a sconsigliarti l'uso di iframe per il problema che hai,
dato che č solo fonte di ulteriori problemi che potresti avere
(sincronizzazioni di documenti caricati, soprattutto con le form di
mezzo, anche la history del browser, etc).

    document.getElementById("Omaggi").contentWindow
 
mi restituisce null.... document.getElementById("Omaggi").contentWindow
 
forse nn ho detto prima che io mi trovo dentro iframe Articoli, e la 
finestra che contiene i due iframe è una popup.....
 
<form  id="Totale">
 
    <iframe id="Articoli">
 
    <iframe id="Omaggi">
 
</form>
 
 
cambia qualcosa?
 

 cambia qualcosa?
 
Ovviamente si, non ricordi tutti i discorsi che abbiamo fatto su parent,
top, eccetera?
 

top, eccetera?
 
<form  id="Totale">
 
    <iframe id="Articoli">---> <form name="Form_Articoli">
 
    <iframe id="Omaggi">---> <form name="Form_Omaggi">
 
</form>
 
se io sono dentro iframe Articoli e voglio fare un submit al form contenuto 
dentro il iframe Omaggi
 
 
dovrei fare....uhm..
 
top.opener = mi sposto nella popup al top (contenitore dei due iframe)
 
poi punto al iframe Omaggi.....
e da li dovrei scrivere dentro un input text  id ="DEMO"
 
top.opener.window.frames["Omaggi"].getElementById("Demo").value
 
ce qualcosa che non torna...però
 
 

 top.opener.window.frames["Omaggi"].getElementById("Demo").value
 
Hai fatto un po' di confusione. Prima di tutto, ti ho già spiegato come
`window` sia una proprietà che "punta a sé stessa". Quindi:
 
    top.opener.window
 
è del tutto superfluo, dato che è equivalente a:
 
    top.opener
 
Come già spiegato, puoi anche metterlo, ma è irrilevante. Così come:
 
    top.opener.window.window.window
 
Funziona, ma ha poco senso.
 
Seconda di poi, hai dimenticato `document`. La collection `frames` ti
restituisce un riferimento a una `window`, mentre `getElementById` è un
metodo di `document`. Sarebbe come tu cercassi di fare:
 
    getElementById("myid")
 
O:
 
    window.getElementById("myid")
 
Invece di:
 
    document.getElementById("myid");
 
I primi due sono sbagliati ovviamente, come detto poco sopra, è un
metodo di `document` non di `window`.