PDA

View Full Version : [JAVASCRIPT]Interagire da popup


Baio84
26-02-2013, 13:24
Per imparare un po' di codice, voglio ricreare lo stesso effetto di inserimento delle emoticons, cioè cliccando sull'immagine voglio che all'interno della casella di testo del form venga inserita la sequenza di caratteri per poi visualizzare l'immagine nel post inviato. Fino a che faccio tutto sulla stessa pagina, nessun problema. Però voglio fare una cosa come qui sul forum, voglio che si apra un popup con tutte le emoticons, e da lì cliccando sull'immagine, inserisca il testo nel form della finestra che ha aperto il popup.

Ho provato diverse soluzioni con window.opener, ma niente da fare. C'è qualcosa che mi sfugge.

Finestra madre
<head>
<script type="text/javascript">
function popup(url, width, height) {
var finestra = window.open(url, "Red fox", "width=" + width + ", height=" + height);
}
</script>
</head>

<body>
<br />
<a href="javascript:popup('redfox.html','150','150')">Popup</a><br /><br />
<form name="provare" action="#">
<input type="text" name="texta" />
<img src="red%20fox/msn_red_fox_smilies-01.gif" onClick="scrivi()" />
</form>

</body>


Codice finestra popup
<img src="red%20fox/msn_red_fox_smilies-01.gif" onClick="window.opener.document.provare.texta.value += 'cIAO'" />

Ho ridotto tutto all'osso ma dovrebbe essere tutto comprensibile.
Qualcuno saprebbe darmi una mano? :help:

wingman87
26-02-2013, 14:00
http://www.w3schools.com/jsref/prop_win_parent.asp

Baio84
26-02-2013, 15:37
http://www.w3schools.com/jsref/prop_win_parent.asp

Ho fatto un po' di prove con window.parent, anche con l'esempio che c'è nel sito, ma mi riporta solo l'indirizzo della pagina. Scusa l'ignoranza, ma non capisco come possa essermi utile.

C'è un'altra cosa che non ho detto, ma non penso sia rilevante, comunque sto facendo tutto da computer remoto

wingman87
26-02-2013, 16:51
Hai provato a usare "parent" invece di "opener"?

Baio84
27-02-2013, 11:50
ho provato con tutto:

parent.document.provare.texta.value
window.parent.document.provare.texta.value
window.parent.provare.texta.value

ma niente di niente.

Magari sbaglio io qualcosa, ma nella maggior parte delle guide che ho letto vedevo sempre opener

wingman87
27-02-2013, 15:37
Penso che parent sia corretto, magari qualche browser supporta anche opener... comunque noto adesso un'altra cosa: nell'html hai scritto "onClick=..." prova a sostituire con "onclick=..." (tutto minuscolo)

Baio84
27-02-2013, 18:05
Anche con onclick non succede niente. Non so proprio dove sbattere la testa :muro:

wingman87
27-02-2013, 19:39
Avevi ragione, è giusto opener. Non ho avuto tempo però di vedere quando si usa opener e quando parent (parent l'avevo usato ad esempio da un iframe per ottenere la pagina che lo conteneva) ma vabbé...
Ho creato un mini esempio con il tuo codice e facendo delle prove, sembra che con onclick minuscolo e opener funzioni:
http://www29.zippyshare.com/v/20144960/file.html

Baio84
27-02-2013, 20:22
Forse ho capito qual'è il problema. Io facevo tutto da computer remoto ed in questo modo anche il tuo test non mi funzionava. Ho provato a pubblicarlo e funziona una meraviglia! Si vede che opener legge solo l'indirizzo web e non un percorso di cartelle.

Ti ringrazio per avermi dato una mano :D