【问题标题】:Popup Window similar to Modal Window类似于模态窗口的弹出窗口
【发布时间】:2008-09-19 22:21:33
【问题描述】:

我需要打开一个跨域内容的弹出窗口。在我完成子窗口之前,我不应该允许用户访问或关闭父窗口。

模态窗口的主要问题是停止在主窗口上运行的任何异步进程。例如,计时器和自动刷新在父窗口中不起作用。

上面说的有什么完美的方法吗。

提前致谢

【问题讨论】:

    标签: javascript window modal-dialog


    【解决方案1】:

    不弹出一个实际的窗口怎么样,你只需要打开一个伪窗口...这是一个带有一些边框的 div,如果你愿意,可以让它可拖动,然后放置一个覆盖其余部分的大半透明 div页面并阻止它被点击。基本上做类似Lightbox 工作原理的事情

    【讨论】:

      【解决方案2】:

      您可以使用通过 javascript 构建的假窗口。几个小部件库对此提供支持。例如,请参阅ExtJS,它也支持模态窗口,但它可能对您的应用程序来说太过分了。对于 jQuery,浏览 plugins,例如 this one

      【讨论】:

        【解决方案3】:

        如果您在 ASP.Net 上工作,我认为 Telerik 可以对此进行控制。正如@Davr 建议的那样,在其实现中使用 div 。无论如何,模态窗口是一个糟糕的选择,因为并非所有浏览器都支持它们。

        【讨论】:

          【解决方案4】:

          除了 Davr 和 thoriann 所说的之外,您可能还需要进行 Ajax 调用来获取内容。由于通过浏览器进行的 Ajax 调用强制执行同域策略,因此您需要对 OWN 服务器进行 Ajax 调用,而后者又需要发出 xmlhttp 服务器到服务器请求以获取第三方的内容服务器。

          【讨论】:

            【解决方案5】:

            由于以下原因,我觉得上述答案不适合..

            JasonS 解决方案 - 该应用程序基于 J2EE 技术开发。

            其他的解决方案——子窗口中Launched的部分URL会通过标准API与父窗口通信。如果我使用 div 或其他内置插件窗口,那么那些 javascript API 将失败。

            【讨论】:

              【解决方案6】:

              查看“BlockUI”中的 Jquery 插件。当 BlockUI 被调用时,父窗口是不可访问的。你可以在模态框上做你想做的事,然后调用“UnblockUI”来关闭弹出窗口并再次给予父控制。

              皮特

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2013-01-03
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多