我需要打开一个跨域内容的弹出窗口。我不应该允许用户访问或关闭父窗口,直到我完成子窗口。
Modal窗口的主要问题是停止在主窗口上运行的任何异步进程。例如,计时器和自动刷新不会在父窗口中工作。
有没有完美的方法来做上述说法。
提前致谢
答案 0 :(得分:2)
怎么样而不是弹出一个实际的窗口,你只需要打开一个伪窗口...这是一个带有边框的div,如果你想要它可以拖动,并放置一个覆盖其余部分的大型半透明div页面的阻止和阻止它被点击。基本上做Lightbox如何工作
答案 1 :(得分:1)
您可以使用通过javascript构建的虚假窗口。几个小部件库都支持这一点。例如,请参阅ExtJS,它也支持模态窗口,但它可能对您的应用程序来说太过分了。对于jQuery,浏览plugins,如this one
答案 2 :(得分:0)
如果您正在使用ASP.Net,我认为Telerik可以控制此问题。在@Davr建议的实现中使用div。模态窗口无论如何都是不好的选择,因为并非所有浏览器都支持它们。
答案 3 :(得分:0)
除了Davr和Thoriann所说的,你可能需要进行Ajax调用以获取内容。由于Ajax通过浏览器调用强制执行相同域策略,因此您需要对您的OWN服务器进行Ajax调用,这反过来需要发出xmlhttp服务器到服务器请求来获取第三方内容服务器
答案 4 :(得分:0)
我觉得上述答案不适合以下原因..
JasonS解决方案 - 该应用程序是基于J2EE技术开发的。
其他解决方案 - 子窗口中启动的某些URL将通过标准API与父窗口进行通信。如果我使用div或其他内置的插件窗口,那么这些javascript API将失败。
答案 5 :(得分:0)
查看“BlockUI”中的Jquery插件。调用BlockUI时,父窗口不可访问。您可以在模态上执行您想要的操作,然后调用“UnblockUI”关闭弹出窗口并再次给予父控件。
皮特