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