Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    128

    Eseguire una funzione in una pagina interna caricata all'interno di un iframe

    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.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    128
    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. ;-)

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    128
    Cmq il codice che mi hai suggerito è praticamente quello che avevo già fatto. E' per questo che sto provando con un'altra funzione.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    128
    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è?

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    128
    Ora devo andare, se mi rispondi risponderò domani.
    Buona serata! :-)

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    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

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    128
    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?

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    128
    Ho provato anche così ma niente:

    Pagina 1:

    iframe.contentWindow.sifr();

    Pagina 2:

    window.addEvent('domready', sifr);
    function sifr() {
    sIFR.setup();
    }


  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    128
    nessuna idea?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.