日期:2014-05-20  浏览次数:20371 次

关于关闭弹出页面的问题
我想让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