使用上一个选定视图加载iframe

时间:2011-08-13 06:12:49

标签: jquery asp.net-mvc-2 iframe

我的主视图上有不同的锚标记,还有一个带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吗?

2 个答案:

答案 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结构,我们可以提供更多详细信息。