Ciao a tutti,
in una pagina (che chiamo per comodità "pagina 1") ho un iframe che carica la seconda pagina (che chiamerò "Pagina 2").
Da Pagina 1 devo eseguire una funzione in Pagina 2. Come si fa?
Grazie.
Ciao a tutti,
in una pagina (che chiamo per comodità "pagina 1") ho un iframe che carica la seconda pagina (che chiamerò "Pagina 2").
Da Pagina 1 devo eseguire una funzione in Pagina 2. Come si fa?
Grazie.
document.getElementById('idIframe').contentWindow. nomeFunzione('argomento');
se ha solo un name mi sembra basti
self.frames['nameIframe'].nomeFunzione('argomento');
il tutto sempre ad imprescindibile condizione che pagina 1 e pagina 2 appartengano allo stesso dominio
Grazie Xinod,
sto cercando di capire se funziona o no facendo eseguire un'altra funzione diversa da quella che dovrei attivare perchè non sono sicuro di come attivare quella giusta (dovrei far partire sIFR).
Appena ho la risposta ti faccio sapere. ;-)
Cmq il codice che mi hai suggerito è praticamente quello che avevo già fatto. E' per questo che sto provando con un'altra funzione.
Dunque... pare non funzionare...
Spiego meglio cosa ho fatto come test:
In Pagina 1 (nella quale avevo già a disposizione la libreria di mootools) ho scritto:
window.addEvent('load', function(){
iframe.contentWindow.prova();
})
dove "iframe" è l'elemento iframe della mia pagina selezionato con un selezionatore mootools (questo è ok perchè l'ho già usato per fare altre robe. Anche l'evento "load" dovrebbe essere quello giusto perchè l'ho già usato per fare altre cose in Pagina 2).
In Pagina 2 (nella quale ho sempre il link a mootools) ho scritto:
window.addEvent('domready', function() {
function prova() {
$$('.coll_03').setStyle('display', 'none');
}
});
La funzione prova funziona perchè l'ho già testata.
Avviando Pagina 1 firebug (di Firefox) mi dice: "iframe.contentWindow.prova is not a function"
Perchè?![]()
Ora devo andare, se mi rispondi risponderò domani.
Buona serata! :-)
cosi' come hai scritto, prova() non e' definita a livello di window
definiscila fuori dalla funzione anonima, che a questo punto non serve piu'
function prova() {
$$('.coll_03').setStyle('display', 'none');
}
window.addEvent('domready', prova);
ciao
Ciao Xinod,
ora funziona!
Adesso devo passare al passaggio successivo, attivare la funzione che davvero mi interessa: sIFR.setup(); dove credo che "setup" sia un metodo dell'oggetto sIFR definito nella libreria di sIFR.
In questa libreria ("sifr.js") il punto che avvia la riscrittura in sIFR dovrebbe essere questo:
if(typeof sIFR == "function" && !sIFR.UA.bIsIEMac && (!sIFR.UA.bIsWebKit || sIFR.UA.nWebKitVersion >= 100)){
sIFR.setup();
};
Di conseguenza, nella pagina 1 ho provato ad avviare la funzione in questo modo:
iframe.contentWindow.sIFR.setup();
Però non funzoina...
Ora che sbaglio?![]()
Ho provato anche così ma niente:
Pagina 1:
iframe.contentWindow.sifr();
Pagina 2:
window.addEvent('domready', sifr);
function sifr() {
sIFR.setup();
}
![]()
![]()
![]()
nessuna idea?