2013-05-16 65 views
2

我知道有很多这样的问题,但我们已经知道每个案例都不是彼此相似。用jquery关闭iframe?

所以,这是我的情况:

HTML输出:PAGE 1

<div id="login-embedded" style="height: 401px; display: none;"> 
<iframe frameborder="0" src="{$mybb->settings['bburl']}/login.php" style="height: 401px;"></iframe> 
</div> <!-- /end login-embedded --> 
<div id="blackout"></div> 

HTML输出:IFRAME

<div id="embedded-login"> 
<h1>{$lang->login}</h1> 
<form method="post" action="{$mybb->settings['bburl']}/member.php"> 
<a id="embedded-close" href="javascript:;" onclick="jQuery('#blackout, #login-embedded').hide('slow');" rel="closeLogin"></a> 
<div> 
...... 
</div> 

JQUERY:

jQuery(document).ready(function(){ 
jQuery('a[name="login"]').click(function(){ 
    jQuery("#blackout").fadeIn(1000); 
    jQuery("#blackout").fadeTo("slow",0.8); 
    jQuery("#login-embedded").show(); 
    return false 
}); 

jQuery("#embedded-login a#embedded-close").click(function(){ 
    jQuery("#blackout").hide("slow");jQuery("#login-embedded").hide("slow"); 
    return false 
}); 

jQuery("#blackout").click(function(){ 
    jQuery(this).hide("slow"); 
    jQuery("#login-embedded").hide("slow"); 
    return false 
}) 
}); 

我在这里错过了什么吗?我发现了一个解决方案,通过使用jQuery对话框来关闭iframe,但似乎无法在我的情况下工作。

任何帮助将不胜感激!谢谢!

回答

8

您在iframe中的onclick="jQuery('#blackout, #login-embedded').hide('slow');"不会执行任何操作,因为这些元素位于父页面上。试试这个:

onclick="window.parent.jQuery('#blackout, #login-embedded').hide('slow');" 

window.parent.jQuery位将使用jQuery的父文件的实例来运行动画。

+1

这工作!十分感谢。由于声誉太低而无法投票^^ – LCTG