Newsgroup: it.comp.lang.javascript
Titolo: window open e gestione

Salve, sono nuovo in questo NG, ho una domanda da fare
se da un pagina suddivisa in due frame,  (frameA - frameB)
da uno di questi due (frameB) apro una finestra con window.open o
window.showModalDialog
all'interno di questa finestra apro un ulteriore frameset sempre con due
frame (frameWinA - frameWinB), ora se io volessi dal frameWinB gestire un
input di tipo text presente sulla pagina che ha aperto la finestra cioč
frameB quale sintassi devo utilizzare ?
ho provato giů la seguente :
top.window.frames["frameB"].formName. mioCampo.value
e non funziona
Grazie
Marco

Per riferirti alla finestra "principale" dalla finestra aperta devi usare
opener (quindi opener.frames....)
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M.
--

 opener (quindi opener.frames....)
prima di tutto grazie per la risposta, quindi dici che con questa sintassi
dovrei riuscire a gestire il frame padre
window.opener.frames[nomeFrame].nomeForm.campo;
tuttavia non riesco continua a dirmi che l'oggetto a cui faccio riferimento
non è un oggetto

Ma lo stai facendo con una window.open o con una modalDialog? Nel secondo
caso non penso funzioni (e non penso vi sia soluzione)
Altrimenti spiega l'esatta struttura dei frames


 Altrimenti spiega l'esatta struttura dei frames
con una window.open, la struttura dei frame è la seguente
ho una pagina suddivsa in 2 frame (frameA, frameB) uno dei due frame frameB
apre una window.open , la pagina che apre è un frameset che due frame
(frameFiglioA, frameFiglioB) da frameFiglioB dovrei riuscire ad impostare un
campo text presente nella form del frameB
spero di essere stato chiaro
grazie
Marco

Sai che non ho mai provato?
Non so il frame nella window aperta se considera correttamente l'opener; io
farei quindi:
opener.frames['frameB'].document.forms['tuaform'].elements['tuocampo'].value
='tuovalore';
Se non va prova ad esplicitare:
top.opener.top.frames[...etc etc


 top.opener.top.frames[...etc etc
niente sembra non andare comunque, top.opener.frames['mioframe']  mi dice
che è indefinito :((
Come potrei risolvere ?
grazie
Marco

Mi sembra strano ma, non avendo mai provato, non so
dovrei fare delle prove ma sinceramente non ne ho il tempo, sentiamo gli
altri, qualcuno avrà ben fatto un qualcosa di simile qualche volta (anche se
aprire una window con dentro un frameset non credo sia una prassi comune...)


 che è indefinito :((
Partendo dal presupposto che hai questa struttura da te elencata
precedentemente:
"ho una pagina suddivsa in 2 frame (frameA, frameB) uno dei due frame
frameB
apre una window.open , la pagina che apre è un frameset che due frame
(frameFiglioA, frameFiglioB) da frameFiglioB dovrei riuscire ad impostare
un campo text presente nella form del frameB"
Si deduce che:
frameB -> nuova finestra -> frameFiglioA,frameFiglioB
A cazzotto, direi quindi, da frameFiglioB:
parent -> finestra aperta da frameB
parent.opener -> frameB
ergo:
parent.opener.document.formName.mioCampo.value="myvalue".
Se non dovesse funzionare, fai una semplice operazione di debugging.
Da figlioFrameB:
alert("parent URL:"+parent.location.href);
alert("parent.opener Name:"+
parent.opener.name
+
	"\nparent.opener URL:"+parent.opener.location.href);
alert("form exists:"+(typeof parent.opener.document.formName!="undefined"))
alert("field exists:"+(typeof
parent.opener.document.formName.mioCampo!="undefined"))
E controlla che tutto corrisponda, ed agisci di conseguenza.
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
Tutti quelli che credono nella psicocinesi, per favore alzino la mia mano.

 aprire una window con dentro un frameset non credo sia una prassi
comune...)
Cristiano ti ringrazio molto per i consigli, sono riuscito a risolvere, la
sintassi per gestire il frame è corretta mentre il campo a cui dovevo
assegnare il valore non aveva nel tag imput valorizzata la proprietà id,
quindi non veniva riconosciuto
Saluti
Marco

> E controlla che tutto corrisponda, ed agisci di conseguenza.
grazie mille
Marco