2013-04-24 44 views
0

在ASP.NET Web应用程序中,有一个主窗口(Default.aspx或主页),并且有一个子窗口(一个新的aspx页面)。当我使用window.open()方法通过指定其URL来使用按钮单击JavaScript打开子页面时。在按钮单击事件 C#代码:从主页打开后隐藏子页面

protected void BtnChildPage_Clicked(object sender, ImageClickEventArgs e) 
    { 
     System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
     sb.Append(@"<script language='javascript'>"); 
     sb.Append(@"OpenChildPage('" + sQueryString + "')"); 
     sb.Append(@"</script>"); 

     //register startup script with button 
     ScriptManager.RegisterStartupScript(BtnPartMemo, this.GetType(), sScriptName, sb.ToString(), false); 
    } 

Javascript代码opne子页:

var childmWindow; 
function OpenChildPage(sQueryString) { 

    var width = 655; 
    var height = 508; 
    var left = (screen.width - width)/2; 
    var top = (screen.height - height)/2; 
    var params = 'width=' + width + ', height=' + height; 
    params += ', top=' + top + ', left=' + left; 
    params += ', directories=no'; 
    params += ', location=no'; 
    params += ', menubar=no'; 
    params += ', resizable=yes'; 
    params += ', scrollbars=yes'; 
    params += ', status=yes'; 
    params += ', toolbar=no'; 
    childmWindow = window.open('DirectoryName/ChildPage.aspx' + '?ViewerId=' + sQueryString, 
           'Child Page' + sViewerId, params); 
    childmWindow.focus(); 

} 

子窗口不会出现在主窗口的前面。我在调用window.open()方法之后尝试了window.focus(),但它在打开后隐藏了子窗口。

只有在使用Win XP在IIS 5.1中部署应用程序后才会出现此行为。 虽然我从代码执行它,但它的行为相应,但在IIS中部署后,它在打开后隐藏子窗口。

如何克服这种行为?

+0

发布您的代码,否则无人可以判断答案。 – 2013-04-24 04:46:19

+0

问题用代码更新。 – 2013-04-24 05:04:26

回答

0

据我了解,您需要在主窗口前的小窗口中打开子窗口? 如果这是正确的,那么这应该帮助:

window.open('DirectoryName/ChildPage.aspx','_blank', params); 

如果'_blank'会工作,但你需要“‘子页’+ sViewerId”出于某种原因,那么应使用

window.open('DirectoryName/ChildPage.aspx','_blank'+'Child Page' + sViewerId, params); 

_blank首先,否则它将不起作用(首先想评论它,但由于某种原因,我不能这样做,所以我希望它会有所帮助)。