2013-04-24 75 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首先,否則它將不起作用(首先想評論它,但由於某種原因,我不能這樣做,所以我希望它會有所幫助)。