Закрыть ColorBox iFrame после отправки - PullRequest
18 голосов
/ 06 января 2010

Я использую jQuery ColorBox для отображения товара в корзине. Когда пользователь вводит количество в iFrame (открывается с помощью colorbox) и нажимает кнопку отправки, я хочу, чтобы iFrame был закрыт, а главное окно (родительское) обновлялось автоматически.

Я имею в виду, что я хочу получить две вещи после отправки данных в iFrame:

  1. iFrame закрывается автоматически.
  2. Обновление родительского окна происходит автоматически.

Пожалуйста, помогите мне.

Ответы [ 9 ]

36 голосов
/ 29 марта 2010

используйте это в родительском окне при открытии iframe:

$(document).ready(function(){
    $(".chpic").colorbox({width:"80%", height:"80%", iframe:true, 
        onClosed:function(){ location.reload(true); } });
});

и это, чтобы закрыть iframe внутри страницы iframe:

parent.$.fn.colorbox.close();
3 голосов
/ 06 января 2010

После отправки формы в кадре 1 вы можете использовать следующий JavaScript для перезагрузки родительского кадра:

window.parent.location.reload(true);
2 голосов
/ 30 ноября 2011

открыть jquery.colorbox.js найдите эти две части кода:

$close.click(function () {
  publicMethod.close(); 
});


$overlay.click(function () {
  if (settings.overlayClose) {
    publicMethod.close();
  }
});

заменить на них - обратите внимание на добавление "window.location.reload ();"

$close.click(function () {
  publicMethod.close();
  window.location.reload();         
});


$overlay.click(function () {
  if (settings.overlayClose) {
    publicMethod.close();
    window.location.reload();
  }
});
2 голосов
/ 28 апреля 2010
<form target="_top">
1 голос
/ 12 июня 2012

Просто имитируйте щелчок по кнопке закрытия, например:

$("#cboxClose").click();
1 голос
/ 01 декабря 2010

Дайте тег формы как это:

<form target="_top">

затем после отправки:

response.redirect("your form")
1 голос
/ 06 января 2010

Я бы взглянул на http://colorpowered.com/colorbox/core/example1/index.html

В частности, посмотрите «Пример с предупреждениями»

0 голосов
/ 13 марта 2013

Если вы хотите остаться на текущей странице:

  1. напишите следующий код на родительской странице, где применяется colorbox.

    $(document).ready(function(){
    
     $(".tu_iframe_800x600").colorbox({width:"80%", height:"100%", iframe:false 
    
      });
    });
    
  2. и следующий код на текущей странице, где вы хотите закрыть colorbox parent.$.fn.colorbox.close();

Примечание: пожалуйста, замените .tu_iframe_800x600 вашим html-классом, для которого вызывается colorbox...

0 голосов
/ 21 декабря 2011

Если вы используете Drupal 7, вам может понадобиться следующая альтернатива:

parent.jQuery.colorbox.close();

В D7 $ .fn, похоже, заменяется объектом jQuery.

Я просто настраиваю обратный вызов меню, который просто возвращает это:

return <<<EOF
<script type="text/javascript">
  <!--//--><![CDATA[//><!--
  parent.jQuery.colorbox.close();
  //--><!]]>
</script>
EOF;

Мне показалось, что он отлично работает:)

...