Je suis en train de fermer FancyBox à partir de l'iframe, mais parent.$
est toujours undefined
. Ceci est mon iframe JavaScript:
<script type='text/javascript'
src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js'>
</script>
<script type="text/javascript">
jQuery(document).ready(function($){
(function($) {
$.fn.closeFancyBox = function() {
$(this).click(function() {
parent.$.fancybox.close();
});
};
})(jQuery);
$('#cancel').closeFancyBox();
});
});
</script>
Remplacement parent.$.fancybox.close();
avec alert('clicked');
fonctionne très bien. Je ne comprends pas pourquoi parent.$
est undefined
lorsque l'iframe est dans le même domaine. J'utilise WordPress 2.9.1, avec le plugin FancyBox pour Wordpress.
- page principale:
//server.local/web/test/index.php
- page iframe:
//server.local/web/test/wp-content/plugins/wp-test/test.htm
Le premier de ces URL est la page principale, la seconde est la page d'iframe; server.local
est mon serveur de test à domicile.
Des idées? Je peux coller toute la source si cela peut être utile.
Désolé, aurait dit que je suis au courant de cela; le js que j'ai inclus était un extrait. J'ai édité ma question pour refléter cela - en passant $ signifie que je n'ai pas besoin d'utiliser 'jQuery'. – Aleksandr
@Aleksandr Passer '$' dans un iframe n'a aucune incidence sur la page parente. En fait, vous incluez une instance complètement séparée de jQuery dans le 'iframe'. Si vous remarquez ce que vous avez écrit, vous passez '$', mais référencez 'parent. $'. C'est comme si vous aviez 'var a = 1; alert (obj.a); 'Vous ne vous attendez pas à ce que les deux éléments se réfèrent à la même valeur, à moins qu'il y ait une affectation quelque part dans le code. –
Vous avez raison, cela a du sens. Cependant, en utilisant le code suivant: 'jQuery ('# cancel'). Click (function() {parent.jQuery.fancybox.close();});' Je reçois toujours des erreurs 'undefined' dans Firebug:' parent. jQuery.fancybox est indéfini ». Avez-vous une idée pourquoi cela pourrait être? Merci pour votre aide jusqu'à présent! Je suis encore très novice en JavaScript et en codage en général. – Aleksandr