在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中部署后,它会在打开后隐藏子窗口。
如何克服这种行为?
答案 0 :(得分:0)
据我所知,您需要在主页面前的小窗口中打开子窗口? 如果这是正确的,那么这应该有所帮助:
window.open('DirectoryName/ChildPage.aspx','_blank', params);
如果'_blank'
可行,但出于某种原因你需要“'儿童页'+ sViewerId”
window.open('DirectoryName/ChildPage.aspx','_blank'+'Child Page' + sViewerId, params);
首先应该使用_blank,否则它将不起作用(首先想要评论它,但我不能出于某种原因,所以我希望它会有所帮助)。