ASP.NET Web アプリケーションには、メイン ウィンドウ (Default.aspx またはホーム ページ) と子ウィンドウ (新しい aspx ページ) があります。URLを指定してwindow.open()メソッドを使用してボタンクリックで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 コード:
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 にデプロイした後、開いた後に子ウィンドウを非表示にします。
この動作を克服する方法は?