0

在 ASP.NET Web 应用程序中,有一个主窗口(Default.aspx 或主页)和一个子窗口(一个新的 aspx 页面)。当我在按钮上使用 javascript 打开子页面时,通过指定其 url 使用 window.open() 方法单击。按钮单击事件上的 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 中部署后,它会在打开后隐藏子窗口。

如何克服这种行为?

4

1 回答 1

0

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

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

如果'_blank'可以,但由于某种原因你需要“'Child Page' + sViewerId”

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

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

于 2013-04-24T07:56:50.803 回答