我的主视图上有不同的锚标记,还有一个带iframe的弹出窗口。当点击锚标签时,不同的视图被加载到iframe。我的问题是,当我点击第一个锚标签时,iframe加载了一个完美的视图。当我单击下一个锚标记时,iframe最初显示上一个视图,然后仅加载所选视图。在加载所选视图之前,前一个视图在iframe中显示几秒钟。
用于显示iframe弹出div的jquery是
$("#crtSubInstn").live("click", function(e) {
$(".iframe_popup_window").fadeIn();
$("#popupHead").html("Create Instruction");
$("#updtFeatures").show();
$("#popup_content").addClass("editor_iframe");
});
$("#udtAttrib").live("click", function(e) {
$(".iframe_popup_window").fadeIn();
$("#popupHead").html("Add Attribute");
$("#updtFeatures").show();
});
弹出窗口上有一个关闭按钮,点击后会隐藏带有iframe的弹出窗口。关闭事件的jQuery是
$('.iframe_popup_window_close').live('click', function() {
//$("#frmUpdtFeatures").contents().val();
//window.frames["InstnDetails"].location.reload();
//$('#frmUpdtFeatures').attr('src', '');
$("#popup_content").removeClass("editor_iframe");
$('.iframe_popup_window').fadeOut(function() {
$('a.close').remove();
}); //fade them both out
$(".overlay_iframe").hide();
return false;
});
我该如何处理这种情况。关闭弹出窗口时,我可以将iframe scr设置为null吗?
答案 0 :(得分:1)
当隐藏弹出窗口时,您可以将src设置为about:blank:
$(iframe).attr('src', 'about:blank')
这适用于所有主流浏览器。
您还可以收听iframe的加载事件,并仅在加载帧后显示弹出窗口。类似的东西:
function showPopup() {
... show popup code goes here ...
}
$(iframe).attr('src', '/some/url/here');
$(iframe).load(function() {
showPopup();
})
Onload在iframe的浏览器中工作不一致,但可能会提供您正在寻找的行为。我建议在隐藏弹出窗口时使用about:blank,并在iframe的onload事件上显示弹出窗口。
答案 1 :(得分:0)
似乎关闭iframe时,您应该清除或隐藏其中的内容,然后在下次加载新内容后才显示iframe。如果您向我们展示了更多内容使用iframe的内容并向我们展示iframe中的HTML结构,我们可以提供更多详细信息。