2010-10-11 6 views
2

J'ai chargé une page dans Fancybox en utilisant un iframe. Mais quand j'essaye d'exécuter des fonctions de jQuery dans ce iframe cela ne fonctionnera pas. Comment puis-je accéder à la page iframe ou au contenu pour pouvoir exécuter jQuery sur cette page? J'ai essayé ceci ci-dessous mais ne marche pas.Appelez jQuery à partir d'un iframe Fancybox?

jQuery(document).ready(function(){ 
parent.jQuery("#showcasef", jQuery.browser.msie ? parent.jQuery('body')[0] : parent.jQuery(document)).live('submit', function(e) { 
        e.preventDefault(); 
     return false; 
     var pho_id = jQuery('#pho_id').attr('value'); 
     var showcase =jQuery("#showcase_pho option:selected").val(); 
     var action = "showcasep"; 
     alert("here"); 


    } 
);     

});

Répondre

2

Vous devrez inclure jQuery à nouveau à l'intérieur qui iframe, ou d'essayer ...

parent.$('body').text('Does it work?'); 

Ou peut-être si cela est trop long, faire une enveloppe

function $() { 
    return parent.jQuery.call(this, arguments); 
} 
+0

Merci, mais ne peut pas le faire fonctionner. DOIT toujours faire quelque chose de mal. Je fournis un exemple de code ci-dessus si cela aide. THX! –

+0

@Pjack Est-ce que le 'iframe' sur le même domaine? En outre, vous renvoyez false de la fonction dans la deuxième ligne. Cela arrêtera le reste de la fonction anonyme. – alex

+0

Oui, il est sur le même domaine. Oups, je l'ai déplacé là pour tester quelque chose, je l'ai déplacé jusqu'à la fin. Cependant, cela ne fonctionne toujours pas. Thx –

1

Si les deux documents dépendent le même domaine, vous pouvez accéder à jQuery en ajoutant "parent" à votre déclaration.

Exemple:

<body> 
<script> 
alert(parent.$('body',document).html()) 
</script> 
</body> 

Notez que le 2ème argument est défini sur le document. Ceci est recommandé, sinon le contexte sera le document de la fenêtre parente, pas le document à l'intérieur de l'iframe. Mais comme je ne savais pas si ce type d'utilisation est vraiment sécurisé, surtout si vous utilisez des plugins externes, je préférerais l'inclusion supplémentaire.

Questions connexes