2010-05-06 9 views
0

J'ai un iframe créé en Javascript avec une fonction f():Comment appeler la fonction iframe de cette iframe

var iframe = document.createElement("iframe"); 
$(iframe).attr({ 
    width: 0, 
    height: 0, 
    frameborder: 0, 
    src: this.options.url, 
    name: id, 
    id: id 
}); 

document.body.appendChild(iframe); 

iframe.contentWindow.f = function(data) { 
alert("test"); 
}; 

document chargé dans ce iframe doit appeler la fonction f():

<script ...>f();</script> 

Et cela fonctionne parfaitement dans Firefox mais Opera dit, f() est indéfini.

Y a-t-il une solution?

Adrian.

Répondre

1

C'est un bon changement, il y a une condition de concurrence, de sorte que le document dans l'iframe a fini de charger avant de définir la fonction. Il serait probablement préférable que le document iframe appelle une fonction dans le document parent à la place.

+0

Vous avez raison. Probablement c'est la raison. En fait, j'appelle la fonction parent iframe et ça marche. Ce n'est pas la meilleure solution pour moi, mais bon à savoir, pourquoi self.f() ne fonctionnera pas dans Opera. Merci! – Adrian

Questions connexes