我试图关闭
FancyBox从iframe,但父母.$总是未定义.
这是我的iframe JavaScript:
这是我的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>
替换父项$.fancybox.close();带有警报(“点击”);工作很好我不明白为什么父对象在iframe位于同一个域时是未定义的.
我正在使用wordpress 2.9.1,带有fancybox for wordpress插件.
>主页://server.local/web/test/index.PHP
> iframe页面://server.local/web/test/wp-content/plugins/wp-test/test.htm
这些URL中的第一个是主页面,第二个是iframe页面; server.local是我的家庭测试服务器.
有任何想法吗?我可以粘贴整个源,如果它是有帮助的.
解决方法
它是未定义的,因为wordpress在
noConflict
模式下运行jQuery.改用:
parent.jQuery.fancybox.close();
noConflict模式意味着$不等于jQuery.你必须明确地使用jQuery访问你通常可以用$访问.