Newsgroup: it.comp.lang.javascript
Titolo: iframe e lancio funzioni

Ciao a tutti!
Ho una pagina principale (A), contente funzioni JS, con un IFRAME che 
include un altra pagina (B), con altre sue funzioni).
E' possibile da A richiamare una funzione contenuta in B, che naturalmente 
agisca su B?
Spero di essere riuscito a spiegarmi correttamente e che qualcuno di voi mi 
possa dare una soluzione!!! :-)
Ciao a tutti e grazie! 

 onclick="window.frames["B"].tuafunzione()"
Grazie per la tua risposta Cristiano, ma scusa la mia ignoranza, cosa si 
intende per "nello stesso dominio"?
Te lo chiedo:
1) non so cosa vuol dire :-P
2) Facendo quanto descritto da te, non funziona :-(((
Grazie ancora! 

 intende per "nello stesso dominio"?
Che le 2 pagine devono risiedere nello stesso dominio. Ossia, se la pagina
è "
www.pippo.it/Default.htm
", nel frame "B" la pagina caricata deve essere
del sito "
www.pippo.it
", altrimenti non puoi interagire tra i due per ovvi
problemi di sicurezza (potresti andare a scatenare qualsiasi function o
modificare qualsiasi variabile in un sito scritto da altri, modificandone
la funzionalità, per esempio). Se ti interessa approfondire cerca in google
"SOP" (same origin police).
Vedi qua per esempio:
 
http://www.mozilla.org/projects/security/components/same-origin.html
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.

 agisca su B?
<ipotesi>
 l'iframe ha name="B"
 la pagina nel frame "B" è nello stesso dominio del frame "A"
</ipotesi>
onclick="window.frames["B"].tuafunzione()"
-- 


 l'errore in una pagina il più semplice possibile e postala.
Ho provato a semplificare il tutto e hai perfettamente ragione! Funziona 
tutto come ci si deve aspettare! :-)
Dovrei essere contento, ma purtroppo non lo sono! :-(((
Purtroppo le pagine che io vado a creare sono costruite NON a livello 
codice, ma con un editor case via web! In cui in realtà un iframe è un 
oggetto che piazzato sulla pagina viene sostituito dal lancio di una 
funzione che ne genera il relativo codice.
Ho notato una cosa analizzando il sorgente della JSP che genera il codice, e 
cioè che l'iFrame a un "name" con un valore ed un "id" con un altro valore! 
Potrebbe essere questo a complicare il processo?
Boh!
Ti ringrazio comunque moltissimo per il tuo supporto, e per quanto mi hai 
insegnato! Grazie 100000000!!! ;-) 

 te sbaglio in qualche cosa?
Direi che è tutto corretto, non vedo assolutamente errori e non può non
funzionare...non è che anziché name="ifrLuca" hai messo id? Non è che la
struttura dei frame non è esattamente come dici (frame "A" che contiene
frame "ifrLuca")? Altrimenti l'errore è da qualche altra parte, riproduci
l'errore in una pagina il più semplice possibile e postala.
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.

Grazie per la tua spiegazione, ora mi è tutto chiaro!
Il mio problema non è quindi legato al fatto del dominio, in quanto la 
pagina inclusa all'interno del mio iFrame è dello stesso dominio.
La sintassi che mi hai dato precedentemente però non mi funziona e genera un 
errore che riporta:
Errore: Proprietà o metodo non supportati dall'oggetto
Nel mio caso, così sono più chiaro, ho 2 pagine:
principale.jsp [A]
inclusa.jsp [B]
in pricipale [A] esiste un iFrame con nome "ifrLuca" ed src "inclusa.jsp", 
in più ho un bottone che lancia una funzione di B, ed è scritta con la 
seguente sintassi:
function button3_Click(){
  window.frames["ifrLuca"].prova();
}
in inclusa [B], ho semplicemente una funzione scritta in questo modo:
function prova() {
  alert("ciao");
}
Sulla base di quanto appreso fino ad ora mi sembra tutto corretto, secondo 
te sbaglio in qualche cosa?
Grazie Cristiano! 

 Potrebbe essere questo a complicare il processo?
Direi di no...devi solo stare attento ad usare il name e non l'id nella
collection frames. Altra ipotesi: non è che il wysiwyg animalesco ti sta
inserendo N iframe con lo stesso name???


 inserendo N iframe con lo stesso name???
Utilizzo il nome, anche perchè l'id è generato random in fase di generazione 
e non lo conosco. Ho controllato anche la possibilità di N iframe, ma il 
frame generato è uno solo.
Mi rendo conto forse, solo a questo punto, che descrivere il problema nel 
mio caso è più complesso di quanto sembri, soprattutto considerando la 
presenza di un codice prodotto non proprio sotto il mio controllo!
GRAZIE!!!

 Mi ritorna "Object"
E allora non esiste la function "prova()" nella pagina caricata nel frame,
non vedo alternative (a parte modifiche livelli di sicurezza, se non
ricordo male in IE c'è una opzione per vietare comunicazioni tra iframe
anche dello stesso dominio, spero ben tu non la abbia toccata! Comunque
prova la mia per sicurezza, c'è l'allegato già pronto da scaricare, così
sei sicuro).
Controlla il sorgente dentro il frame frmLuca e cerca la function prova(),
sei sicurissimo esista dentro quella pagina? Non è per caso a sua volta
dentro un altro frame?
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

Grazie veramente di tutto Cristiano!
Scusa se non ti ho più risposto ma sono stato parecchio impeganto su altre 
cose! :-P
Ho finalmente risolto il problema, e gran parte del merito è tutto tuo!
Purtroppo il codice generato da quel programma case di cui ti parlavo non 
esponeva direttamente le proprietà dell'iframe, ma lo faceva attraverso una 
specie di super funzione js che ne esponeva i metodi! :-PP
E' un discorso un po' difficile da fare, ma riassumento il tutto, direi che 
la sintassi non è propriamente standard!
Grazie ancora per il tuo graditissimo e utilissimo aiuto e ciao!!!