Закрыть ColorBox iFrame после отправки
Я использую jQuery ColorBox
, чтобы отобразить элемент корзины покупок. Когда пользователь вводит количество в iFrame (открывается с помощью colorbox) и нажимает кнопку отправки, я хочу, чтобы iFrame был закрыт, а главное окно (родительское) обновлялось автоматически.
Я имею в виду, что я хочу две вещи после отправки данных на iFrame:
- iFrame автоматически закрывается.
- Родительское окно автоматически обновляется.
Пожалуйста, помогите мне.
Ответы
Ответ 1
используйте это в родительском окне при открытии iframe:
$(document).ready(function(){
$(".chpic").colorbox({width:"80%", height:"80%", iframe:true,
onClosed:function(){ location.reload(true); } });
});
и это, чтобы закрыть iframe внутри страницы iframe:
parent.$.fn.colorbox.close();
Ответ 2
После того, как форма представлена в кадре 1, вы можете использовать следующий JavaScript для перезагрузки родительского фрейма:
window.parent.location.reload(true);
Ответ 3
открыть 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();
}
});
Ответ 4
Я бы взглянул на
http://colorpowered.com/colorbox/core/example1/index.html
В частности, посмотрите "Пример с оповещениями"
Ответ 5
<form target="_top">
Ответ 6
Дайте тег формы следующим образом:
<form target="_top">
затем после отправки:
response.redirect("your form")
Ответ 7
Просто просто имитируйте щелчок по кнопке закрытия, например:
$("#cboxClose").click();
Ответ 8
Если вы используете Drupal 7, вам может потребоваться использовать следующую альтернативу:
parent.jQuery.colorbox.close();
В D7, $.fn, похоже, заменяется объектом jQuery.
Я просто настраиваю обратный вызов меню, который просто возвращает это:
return <<<EOF
<script type="text/javascript">
<!--//--><![CDATA[//><!--
parent.jQuery.colorbox.close();
//--><!]]>
</script>
EOF;
Мне кажется, что это отлично работает для меня:)
Ответ 9
Если вы хотите остаться на текущей странице:
-
напишите следующий код на родительской странице, где применяется colorbox.
$(document).ready(function(){
$(".tu_iframe_800x600").colorbox({width:"80%", height:"100%", iframe:false
});
});
-
и следующий код на текущей странице, где вы хотите закрыть colorbox parent.$.fn.colorbox.close();
Примечание: замените .tu_iframe_800x600
на свой класс html, на который вызывается colorbox...