如何关闭iframe中的colorbox?

时间:2010-01-20 11:38:22

标签: jquery colorbox

我有一个页面manageGroup.php,用户也可以在其中添加成员。我用colorbox来显示addGroupMember.php。现在我需要在提交表单后关闭那个颜色框。

我在manageGroup.php中使用的javascript

<script language="javascript" type="text/javascript" src="js/jquery-1.3.2.js"></script>
<script type="text/javascript" src="js/dropdown.js"></script>
<script type="text/javascript" src="js/jquery.colorbox.js"></script>
<script type="text/javascript">
 $(document).ready(function(){
 $(".iframe").colorbox({width:"80%", height:"80%", iframe:true});
 });
</script>

我用来打开彩盒的链接

<a class="iframe" href="addGMember.php?id=<?php echo base64_encode($fetch->g_id)?>">Add Member</a>

addGroupMember.php中的代码如下: -

if($_POST['add']=="Go")
{
  $gid = $_POST['id'];
  $ii=0;
  $insert = "INSERT INTO ".DBGMEMBER." (gm_g_id,gm_m_id) VALUES ";
  foreach($_POST['gMember'] as $gMember)
  {
    if($ii==0)
    {
        $insert .= " ('".$gid."' , '".$gMember."')";
    }
    else
    {
        $insert .= " ,('".$gid."' , '".$gMember."')";   
    }
    $ii++;
  }
  $db->execute($insert);// after this i want to close the colorbox
  echo "<script>parent.$.fn.colorbox.close(); </script>";// code i used, but not working
}

9 个答案:

答案 0 :(得分:68)

这个对我来说很完美,应该适合你


parent.jQuery.colorbox.close()

答案 1 :(得分:16)

我为我完成了它,有点疯狂,无论如何你也可以尝试一下。

假设您的iframe页面为x.php,其格式为xyz

<?php
  if($_post['submit']=='Submit')
  {
    //some php code here
    if(success)
     echo "<script>parent.$.fn.colorbox.close(); </script>";
    else
    {
      //some error handling here;
    }
  }
?>
<form name='xyz' action='x.php'>
 //some html code here
 <input type='Submit' name='submit' />
</form>

答案 2 :(得分:8)

第一:详细说明你的问题。您提供的信息是一些缺点。没有机会抓住你正在做的事情。还包括一些示例代码。

我唯一可以猜到的是你试图按照它的编写方式触发方法。您添加到$ .fn对象的所有内容都绑定到所有jQuery对象。

// doesn't work
$.fn.colorbox.close()
// proper way
$('idOfDomElement').colorbox.close()

..弗雷德里克

答案 3 :(得分:4)

确保在iFrame中加载的页面。不需要对colorbox js,jQuery js的所有必要引用。

然后父母近场通话将起作用:

parent.$('.yourElement').colorbox.close();

答案 4 :(得分:4)

就是这个

parent.$.colorbox.close()

似乎对我有用!

我使用它就像这样,甚至没有引用加载到iframe中的文件中的任何JS。

  <a href="javascript:parent.$.colorbox.close()">close</a>

单独在空白的HTML文件中似乎有效。

答案 5 :(得分:2)

我认为问题在于colorbox属于父级,而不属于iframe中的DOM。

我的猜测是你需要调用parent。[获取元素或$ .fn对象的方法] .colorbox.close()或者你需要在父文档中添加一个函数并调用parent.myCloseFunction ()

答案 6 :(得分:1)

我只是试图从iframe中关闭colorbox但是无法让它工作。我使用了$('#clockbox')。colorbox.close()而没有任何运气。

答案 7 :(得分:1)

我实际上有一个简单的解决方案。

我把它放了 代码内<a id="btnDone" href="#">here</a>或您可以使用提交按钮的ID和

 $(document).ready(function () {
        $("#btnDone").click(function () {
            window.parent.location = "../siparisler/listele.aspx"
        });
 }

这样你可以重定向父页面。和colorbox自动关闭。如果你不需要重定向,只需在window.parent.location

中输入“#”

答案 8 :(得分:0)

我没有设法使用建议的解决方案关闭Colorbox。我得到父母未定义......所以..


我发现采取了不同的方法:

主页文档:( iframe:false )这将在同一文档中打开DIV中的ajax_page

$(document).ready(function(){
    $("#modalwindow").colorbox({
        width:"800px",
        height:"510px",
        iframe:false,
        href:"../ajax_page.php",
    });
}); 

和ajax_page

$('#modalwindow').colorbox.close();

希望这有帮助