Estoy tratando de cerrar FancyBox desde dentro del iframe, pero parent.$
es siempre undefined
. Este es mi 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>
Sustitución parent.$.fancybox.close();
con alert('clicked');
funciona bien. No entiendo por qué parent.$
es undefined
cuando el iframe está en el mismo dominio.
Estoy usando WordPress 2.9.1, con el complemento FancyBox for Wordpress.
- página principal: página
//server.local/web/test/index.php
- iframe:
//server.local/web/test/wp-content/plugins/wp-test/test.htm
La primera de estas URL es la página principal, el segundo es la página de iframe; server.local
es el servidor de prueba de mi casa.
¿Alguna idea? Puedo pegar la fuente completa si fuera útil.
Lo sentimos, debería haber dicho que soy consciente de ello; el js que incluí fue un fragmento. He editado mi pregunta para reflejar esto: pasar $ significa que no tengo que usar 'jQuery'. – Aleksandr
@Aleksandr Pasar '$' en un 'iframe' no afectará en absoluto a la página principal. De hecho, está incluyendo una instancia completamente separada de jQuery en 'iframe'. Si observa lo que escribió, pasa '$', pero hace referencia 'parent. $'. Es como si tuvieras 'var a = 1; alert (obj.a); 'No esperaría que los dos elementos se refirieran al mismo valor a menos que hubiera una asignación en alguna parte del código. –
Tienes razón, eso tiene sentido. Sin embargo, utilizando el siguiente código: 'jQuery ('# cancel'). Haga clic en (función() {parent.jQuery.fancybox.close();});' Todavía obtengo errores 'undefined' en Firebug:' parent. jQuery.fancybox no está definido'. ¿Tienes alguna idea de por qué esto podría ser? ¡Gracias por su ayuda hasta ahora! Todavía soy muy nuevo en JavaScript y codificación en general. – Aleksandr