2013-06-12 62 views
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浏览器。任何想法如何实现这一目标?

谢谢。

+3

使用模式对话框(jQuery对话框)而不是弹出框。使用对话框更简单,更容易实现所需的效果。 –

+0

问题是,我需要弹出一个已经存在的aspx页面。我想我的问题是,你可以在jQuery模式对话框中打开一个aspx页面吗?如果是这样,你可以将一个值从子窗口传递给父窗口吗?它也适用于所有浏览器? – user2471103

回答

0

玩弄此代码在弹出:

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

这将激活每个用户离开该窗口时间。在参数函数内部,您应该能够使窗口重新获得焦点,可能使用$(this).focus()self.focus()

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

相关问题