从主页打开后隐藏子页面

时间:2013-04-24 04:42:32

标签: c# javascript asp.net visual-studio-2008 iis

在ASP.NET Web应用程序中,有一个主窗口(Default.aspx或主页),并且有一个子窗口(一个新的aspx页面)。当我在按钮上打开带有javascript的子页面时,单击使用window.open()方法指定其URL。 按钮上的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代码:

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中部署后,它会在打开后隐藏子窗口。

如何克服这种行为?

1 个答案:

答案 0 :(得分:0)

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

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

如果'_blank'可行,但出于某种原因你需要“'儿童页'+ sViewerId”

window.open('DirectoryName/ChildPage.aspx','_blank'+'Child Page' + sViewerId, params);
首先应该使用_blank,否则它将不起作用(首先想要评论它,但我不能出于某种原因,所以我希望它会有所帮助)。