我有一个使用元刷新每 5 秒刷新一次的页面
<meta http-equiv="refresh" content="5;url=terminal.asp?x=<%= runningInterval %>" />
该页面有多个动态生成的 jQuery 对话框。感谢这篇文章中的出色建议:Dynamic jquery dialog popups
我的问题是当对话框弹出时它会在父刷新发生时自动消失。无论父/开启者在做什么,我如何强制对话框保持不变?我希望用户在希望时关闭对话框。感谢您
我有一个使用元刷新每 5 秒刷新一次的页面
<meta http-equiv="refresh" content="5;url=terminal.asp?x=<%= runningInterval %>" />
该页面有多个动态生成的 jQuery 对话框。感谢这篇文章中的出色建议:Dynamic jquery dialog popups
我的问题是当对话框弹出时它会在父刷新发生时自动消失。无论父/开启者在做什么,我如何强制对话框保持不变?我希望用户在希望时关闭对话框。感谢您
基本上对话框是父元素内的子元素,因此刷新父元素(例如清除所有子元素并重新填充)将删除对话框。如果你这样做,你就无法真正解决这个问题。如果可能的话,我会将对话窗口设置为另一个未刷新的元素。
例如,直接在文档中。
对话框只是页面的另一个元素,因此如果当前页面消失,它也会消失。
要实现该“持久”对话框,您必须或(1 ) 通过删除和重新创建 HTML 元素来“重新绘制”整个当前页面(对话框除外);或(2)设置一个iframe
,在父级中打开对话框并更改iframe
. -- 由于第一点是(很难但)直截了当,让我展示第二种方法的示例。
在这里查看演示小提琴。(点击此处以编辑模式打开)
父页面将有一个隐藏的对话框(可能还有其他东西)和一个iframe
占据整个页面的对话框:
<div id="dialog1" style="display:none;">Parent Dialog!</div>
<iframe src="http://my.iframe.address.com" height="100%"></iframe>
以及用于打开对话框的 JavaScript(请查看fiddle以获取完整示例。):
function openDialog() { // called by the inner iframe
$('#dialog1').dialog({ /*...*/ });
}
现在该iframe
页面可以是任何其他页面(当然可以用作iframe
)。在此处检查使用的演示页面小提琴。它会在重定向自身之前调用父级打开对话框:
parent.openDialog(); // calls function on parent that will open a dialog
window.location.href = "http://www.imdb.com"; // and then redirects itself
像往常一样,在使用iframe
s 时,请注意同源策略。