iframed jquery ui对话框无法正常工作

时间:2014-08-25 15:29:03

标签: jquery jquery-ui iframe popup

我在jquery ui对话框中显示iframe。在内部对话框中,我显示了添加/编辑等操作的表单。我使用以下HTML代码:

@* This is container which is open as popup *@
<div id="dialog">
   <iframe frameborder="0" id="ContentIframe" src=""></iframe>
</div>

CSS就是:

#ContentIframe {
border: medium none;
height: 100%;
width: 100%;
float:left;
}

和jquery代码是这样的:

/* This method opens iframed dialog box */
function ShowPopup(Url, DialogTitle, W, H) {

    /* Setting for dialog box */
    $("#dialog").dialog({
        title: DialogTitle,
        autoOpen: false,
        modal: true,
        resizable: false,
        width: W,
        height: H,
        open: function (ev, ui) {
           /* Setting URL to open in iframe */
           $('#ContentIframe').attr('src', Url);
        }
    });

    /* Opening dialog box */
    $('#dialog').dialog('open');
}

当调用ShowPopup方法时,我传递URL以在弹出窗口内打开。这很好但问题是,当我打开说URL-A然后关闭弹出窗口然后尝试用URL-B在同一页面上打开弹出窗口时,先显示先前的URL-A内容,然后在秒后显示新的URL内容显示-B。我认为它已在iframe中打开,因此下一个网址需要时间来加载,但为什么旧的(上一个)网址内容仍然存在,因为我已经关闭了弹出广告。

先谢谢...

1 个答案:

答案 0 :(得分:0)

我们需要看看你的关闭函数,我的猜测是你只是隐藏了弹出div,所以你说,新的url需要一些时间来加载,所以你在那之前看到的是前一页。

最简单的解决方案是在关闭弹出窗口时将iframe src设置为空页:

$('#ContentIframe').attr('src', 'about:blank');

或者在打开文档时将其链接起来,这会将其设置为空白然后立即将您的新网址设置为空白(但如果它足够快,则未经测试):

open: function (ev, ui) {
   $('#ContentIframe').attr('src', 'about:blank')
                      .attr('src', Url);
}