关于关闭弹出页面的问题
我想让A页面,点击一个按扭的时候弹出B页面,在里面进行一些操作后点击按扭后自动关闭B页面,再在A里继续触发一个按扭事件.现在功能已经实现
我是这么写的
A页面:
protected void Button1_Click(object sender, EventArgs e)
{
string strJscript = @ " <script language=javascript>
var TopPosition=(screen.height-700)/2;
var LeftPosition=(screen.width-500)/2;
window.showModalDialog( " "B.aspx? " " + 'dialogWidth=500px;dialogHeight=700px;staturs=no;resizable=no;menubar=no ');document.all[ 'btnReturn '].click(); </script> ";
Page.RegisterStartupScript( "ShowDialog ", strJscript);
}
B页面:
protected void Button2_Click(object sender, EventArgs e)
{
string closeForm = " <script> window.close() </script> ";
Page.RegisterStartupScript( "Close ", closeForm);
}
我觉得这样是对的,但是为什么B页面关不掉,而且如果我不写Button2_Click()里面的那两句话 ,它会再弹出一个B页面.写了的话也只是把新弹出的页面关闭掉了.
这个方法我以前在2003里用过的好用,现在换成2005了,难道是这个原因吗? 郁闷啊
[解决办法]
protected void Button2_Click(object sender, EventArgs e)
{
Response.Write( " <script> window.opener=null;self.close(); </script> ");
}
[解决办法]
a.html
<a href= "# " onclick= "secondwin=window.open( 'b.html '); "> OPEN NEW PAGE </a>
<a href= "# " onclick= "window.secondwin.close(); "> CLOSE NEW PAGE </a>
[解决办法]
在B页面里直接用JS把窗口关掉好了,不需要先到后台注册脚本,再通过脚本来关窗口.
这一步明显多余的
[解决办法]
如果你用2005开发的话
你的 Page.RegisterStartupScript( "Close ", closeForm); 应该会提示过期。
应该是:
ClientScript.RegisterStartupScript(this.GetType(), "Close ",closeForm)
[解决办法]
up