【发布时间】:2008-09-19 22:21:33
【问题描述】:
我需要打开一个跨域内容的弹出窗口。在我完成子窗口之前,我不应该允许用户访问或关闭父窗口。
模态窗口的主要问题是停止在主窗口上运行的任何异步进程。例如,计时器和自动刷新在父窗口中不起作用。
上面说的有什么完美的方法吗。
提前致谢
【问题讨论】:
标签: javascript window modal-dialog
我需要打开一个跨域内容的弹出窗口。在我完成子窗口之前,我不应该允许用户访问或关闭父窗口。
模态窗口的主要问题是停止在主窗口上运行的任何异步进程。例如,计时器和自动刷新在父窗口中不起作用。
上面说的有什么完美的方法吗。
提前致谢
【问题讨论】:
标签: javascript window modal-dialog
不弹出一个实际的窗口怎么样,你只需要打开一个伪窗口...这是一个带有一些边框的 div,如果你愿意,可以让它可拖动,然后放置一个覆盖其余部分的大半透明 div页面并阻止它被点击。基本上做类似Lightbox 工作原理的事情
【讨论】:
如果您在 ASP.Net 上工作,我认为 Telerik 可以对此进行控制。正如@Davr 建议的那样,在其实现中使用 div 。无论如何,模态窗口是一个糟糕的选择,因为并非所有浏览器都支持它们。
【讨论】:
除了 Davr 和 thoriann 所说的之外,您可能还需要进行 Ajax 调用来获取内容。由于通过浏览器进行的 Ajax 调用强制执行同域策略,因此您需要对 OWN 服务器进行 Ajax 调用,而后者又需要发出 xmlhttp 服务器到服务器请求以获取第三方的内容服务器。
【讨论】:
由于以下原因,我觉得上述答案不适合..
JasonS 解决方案 - 该应用程序基于 J2EE 技术开发。
其他的解决方案——子窗口中Launched的部分URL会通过标准API与父窗口通信。如果我使用 div 或其他内置插件窗口,那么那些 javascript API 将失败。
【讨论】:
查看“BlockUI”中的 Jquery 插件。当 BlockUI 被调用时,父窗口是不可访问的。你可以在模态框上做你想做的事,然后调用“UnblockUI”来关闭弹出窗口并再次给予父控制。
皮特
【讨论】: