Подтвердить что ты не робот

Как закрыть colorbox внутри iframe?

У меня есть страница manageGroup.php, где пользователь также может добавлять член в группу. Я использовал colorbox, чтобы показать addGroupMember.php. Теперь мне нужно закрыть этот colorbox, как только я отправил форму.

javascript, который я использую в manageGroup.php

<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>

Ссылка, которую я использую, чтобы открыть colorbox

<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
}
4b9b3361

Ответ 1

Это отлично сработало для меня и должно работать для вас


parent.jQuery.colorbox.close()

Ответ 2

Я сделал это для меня, немного сумасшедшим способом, так или иначе, вы тоже можете попробовать.

Предположим, что ваша страница в 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>

Ответ 3

Сначала: Уточните вопрос. Предоставленная вами информация - это то, что сокращено. Нет никакой возможности схватить то, что вы делаете. Также включите еще несколько примеров кода.

Единственное, что я мог догадаться, это то, что вы пытаетесь вызвать метод в том, как он написан. Все, что вы добавляете к объекту $.fn, привязано ко всем объектам jQuery.

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

.. Фредрик

Ответ 4

Убедитесь, что страница загружена в iFrame. Все необходимые ссылки на colorbox js, jQuery js не нужны.

Затем будет действовать родительский закрытый вызов:

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

Ответ 5

только это

parent.$.colorbox.close()

похоже, работает для меня!

Я использовал его так, даже без ссылки на любой JS в файле, загруженном в iframe.

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

это только в пустом HTML файле, похоже, работает.

Ответ 6

Я думаю, проблема в том, что colorbox принадлежит родительскому, а не DOM в iframe.

Мое предположение: вам нужно вызвать родителя. [способ получить элемент или объект $.fn].colorbox.close() или вам нужно добавить функцию в родительский документ и вызвать parent.myCloseFunction()

Ответ 7

Я просто попытался закрыть colorbox из iframe, но не смог заставить его работать. Я использовал $('# closebox'). Colorbox.close() и не повезло.

Ответ 8

Существует простое решение, которое я использую.

я поставлю это <a id="btnDone" href="#">here</a> внутри кода или вы можете использовать идентификатор кнопки отправки и

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

таким образом, вы можете перенаправить родительскую страницу. и colorbox автоматически закрывается. если вам не нужно перенаправление, просто поставьте "#" для window.parent.location

Ответ 9

Мне не удалось закрыть Colorbox с предлагаемыми решениями. Я получаю родительский undefined... Итак..


Я нашел другой подход:

Домашний документ: (iframe: false), это откроет страницу ajax_ в DIV в том же документе

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

и в ajax_page

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

Надеюсь, что это поможет