У меня есть следующий сценарий.Проблема при закрытии iframe с использованием jQuery
На странице отображения продукта, когда пользователь нажимает на вход, всплывающее окно входа открывается в iframe.
jQuery.fancybox({
'padding' : 0,
'transitionIn' : 'none',
'transitionOut' : 'none',
'scrolling' : 'no',
'autoDimensions' : false,
'autoScale' : false,
'width' : frameWidth,
'height' : frameHeight,
'type' : 'iframe',
'href' : _this.attr("href"),
'onComplete' : function() {
$.fancybox.resize();
},
'onClosed' : function() {
if(isReloadOnClose)
closeAndRefresh();
}
});
Когда пользователь успешно подписывается, я открываю другое всплывающее окно, которое запрашивает действия пользователя.
jQuery(document).ready(function() {
window.jQuery('#fancybox-frame').remove();
var productId = document.getElementById("productId").value;
var skuId = document.getElementById("skuId").value;
jQuery.fancybox({
href: "/shop/wishlist-modal-add.jsp?productId="+productId+"&skuId="+skuId,
type: 'ajax',
centerOnScroll: true,
onComplete: function(){
jQuery.fancybox.resize();
},
onClosed: function(){
$('#fancybox-content').css({width:'+=30px;'});
jQuery.fancybox.resize();
}
});
});
Проблема я столкнулся в том, что второе всплывающее окно открывается внутрь только первый ifarme, несмотря на то, что я удаления IFRAME.
Просьба помочь в разрешении этого вопроса.
попробуйте позвонить 'родителя $ fancybox.close();.. 'Вместо' window.jQuery ('# FancyBox-кадр'). remove(); ' – Pete
Hey Pete, приведенное выше утверждение действительно закрывает iframe, однако оно не загружает следующий fancybox. Кроме того, ни одно из утверждений после родителя. $. Fancybox.close(); исполняется. Также интересно, будет ли эта работа работать в междоменной сети из-за того же самого правила происхождения? –
ah Я думаю, потому что вы выполняете скрипт в фактическом iframe, вы не можете его закрыть. попробуйте удалить предыдущую строку, а затем вызовите свой новый fancybox следующим образом: 'parent.jQuery.fancybox ({' не уверен в том же самом происхождении, хотя – Pete