我在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中打开,因此下一个网址需要时间来加载,但为什么旧的(上一个)网址内容仍然存在,因为我已经关闭了弹出广告。
先谢谢...
答案 0 :(得分:0)
我们需要看看你的关闭函数,我的猜测是你只是隐藏了弹出div,所以你说,新的url需要一些时间来加载,所以你在那之前看到的是前一页。
最简单的解决方案是在关闭弹出窗口时将iframe src设置为空页:
$('#ContentIframe').attr('src', 'about:blank');
或者在打开文档时将其链接起来,这会将其设置为空白然后立即将您的新网址设置为空白(但如果它足够快,则未经测试):
open: function (ev, ui) {
$('#ContentIframe').attr('src', 'about:blank')
.attr('src', Url);
}