2013-05-16 70 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