1

我有一个在子窗口中弹出的 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。关于如何实现这一目标的任何想法?

谢谢你。

4

1 回答 1

0

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

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

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

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

于 2013-06-12T17:32:07.653 回答