0

我有一个使用元刷新每 5 秒刷新一次的页面

<meta http-equiv="refresh" content="5;url=terminal.asp?x=<%= runningInterval %>" /> 

该页面有多个动态生成的 jQuery 对话框。感谢这篇文章中的出色建议:Dynamic jquery dialog popups

我的问题是当对话框弹出时它会在父刷新发生时自动消失。无论父/开启者在做什么,我如何强制对话框保持不变?我希望用户在希望时关闭对话框。感谢您

4

2 回答 2

1

基本上对话框是父元素内的子元素,因此刷新父元素(例如清除所有子元素并重新填充)将删除对话框。如果你这样做,你就无法真正解决这个问题。如果可能的话,我会将对话窗口设置为另一个未刷新的元素。

例如,直接在文档中。

于 2013-07-15T23:31:06.140 回答
1

对话框只是页面的另一个元素,因此如果当前页面消失,它也会消失。

要实现该“持久”对话框,您必须或(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

像往常一样,在使用iframes 时,请注意同源策略。

于 2013-07-16T01:36:38.417 回答