子弹出窗口打开时禁用父窗口

时间:2013-06-12 16:58:51

标签: javascript jquery asp.net .net ajax

我有一个在子窗口中弹出的aspx页面。有没有办法在弹出子窗口关闭之前使父窗口不可访问?

为了记录,我使用以下jQuery代码来打开和关闭弹出窗口。在父页面上:

      $(document).ready(function () {
            $('#btnLogos').click(function () {
                window.open("Logos.aspx", "List", "scrollbars=no, resizable=no, width=500, height=350");
            });
        });

上面的代码在从父aspx文件中单击一个名为“btnLogos”的按钮时触发,然后在子弹出窗口中我有以下jQuery:

    $(document).ready(function () {
    $('#btnSubmit').click(function () {
        var val = $('input:radio[name=myRadio]:checked').val();
        $(window.opener.document).find('#txtLogos').val(val);
        window.close();
    });
});

从上面的代码中可以看出,它不仅关闭了弹出子窗口,还通过单击按钮将值传递到父窗口中的文本框。我现在唯一的问题是确保在单击子窗口中的该按钮之前无法访问父窗口。我尝试使用从CSS到Javascript的各种解决方案,但没有成功。我也知道这可以使用showModalDialog来完成,但是这个站点必须在任何浏览器上运行,而不仅仅是IE。关于如何实现这一点的任何想法?

谢谢。

1 个答案:

答案 0 :(得分:0)

在弹出窗口中使用此代码:

 $(window).on("blur", function(){ ... });

每次用户离开窗口时都会触发。在参数函数内部,您应该能够使窗口重新获得焦点,可能使用$(this).focus()self.focus()

我自己没有测试过。祝你好运!