【问题标题】:How to disable parent window while child window appear by clicking button on parent window如何通过单击父窗口上的按钮在出现子窗口时禁用父窗口
【发布时间】:2026-02-15 19:40:01
【问题描述】:

我在jsp中设计了一个窗口,里面有一个搜索按钮。当用户单击“搜索”按钮时,会出现新窗口。但此时我希望禁用我的父窗口,以便当用户尝试在父窗口上执行任何操作时,它不应该允许,直到“搜索”表单关闭。

如果有人知道怎么做,请告诉我。

我已经尝试过此解决方案Javascript to open popup window and disable parent window,但此解决方案无法禁用父页面上的链接。 而且我不打算使用 showmodaldialog。 或者有人可以通过示例向我解释 showdialog() 的使用 谢谢, 拉克什

【问题讨论】:

    标签: javascript


    【解决方案1】:
    function openSearchPopUp() { 
      popupWindow= window.open(url,'window','width=800,
                               height=600,location=yes,
                               menubar=‌​yes,scrollbars=yes,
                               resizable=yes'); 
      popupWindow.focus(); 
      document.onmousedown = focusPopup; 
      document.onkeyup = focusPopup; 
      document.onmousemove = focusPopup; 
    } 
    
    function focusPopup() {
      if(popupWindow && !popupWindow.closed) { popupWindow.focus(); } 
    } 
    

    【讨论】:

    • 它在 IE 8.0 中运行,但在 Google Chrome 中不运行。
    【解决方案2】:

    我呈现模态窗口的方式是创建一个覆盖整个文档的 DIV,具有高 Z-index,然后我防止点击事件的传播。在 jQuery 中,我会这样做:

    // When popup window is open:
    var $cover = $('<div>');
    $cover.css({
      height: $(document).height(),
      width: $(document).width(),
      margin: 0,
      padding: 0,
      background: 'black',
      opacity: 0.5
    });
    $cover.click(function(e) {
       e.stopPropagation();
       return false;
    });
    $cover.appendTo(document);
    

    编辑:这是我使用纯 JS 快速完成的事情。我确信它可以改进以获得更好的跨浏览器支持。

    http://jsfiddle.net/wVNbx/1/

    【讨论】:

    • 我已经使用这种方法使用这个链接aspsnippets.com/Articles/Modal-PopUp-using-JavaScript.aspx,但它只能为父窗口的垂直一半着色
    • 我实际上已经在我正在开发的网站上实现了上述方法,并且它有效。在herdhound.com查看结果(点击右上角的“开始”按钮。
    • @rcky:对纯客户端 JS 不太熟悉,但如果我想出什么,我会告诉你的。
    • 我不知道JSP是如何工作的,但是你应该在父窗口中添加一个脚本标签,将modalCover对象复制到其中,并在子窗口之前调用modalCover.create()方法产生了。
    • @foxbunny ......谢谢你的帮助......使用了其他一些方法并且它工作正常......
    【解决方案3】:

    您可以使用 Greybox 。请访问链接:http://orangoo.com/labs/GreyBox/

    希望这能满足您的要求。

    【讨论】: