页面a.aspx里有一个服务器asp:button(点击会postback到后台,执行完后close此页面)和一个html button(点击后close此页面),该页面用window.open打开。打开a.aspx后,如果点击asp:button,关闭页面,再打开再点击关闭,到第三次时页面就打不开,窗口可以出来,但是是个空的白窗口,然后就死在那里。我在后台加了代码,发现第三次打开时请求没到到达后台。如果点击的是html button的话,不管多少次都没有问题。而且,这个问题只在服务器上才出现,在我本地没有任何问题。怀疑是IIS的原因,但是查了一下也没找到原因,郁闷死。有没有哪位老大遇到过此问题,或者提供点想法也行,多谢。

解决方案 »

  1.   

    代码如下//打开a.aspx的代码
    window.open("a.aspx?act="+act,"Profile","height=580,width=790,status=no,toolbar=no,menubar=no,location=no");// a.aspx code
    <div class="userContainer" style="width:737px!important; width:750px;">
    <div class="grid-button-container">
    <asp:Button ID="btnUpdate" OnClick="eventUpdate" CssClass="inputButton" runat="server" Text="Save and Close" Width="100"></asp:Button>
    <input class="inputButton" onclick="window.close();" type="button" value="Cancel" />
    </div>
    </div>
    //a.aspx.cs code
    protected override void OnPageLoad(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    .....
                }
            }
    protected void eventUpdate(object sender, EventArgs e)
            {
                .....
                Response.Write("<script type='text/javascript'>window.close();</script>");
            }
      

  2.   

    另外你每次window.open中的url加个数字试试
    url += "t=" + new Date().getTime();
      

  3.   


    没有,就是打开它,初始化一些服务器控件,如dropdownlist等,然后点save and close关闭。奇怪就奇怪在,前面两次都是正常的,到了第三次就死了。一旦死了,就需要关掉整个应用,然后重新登陆,两次后又能重现。
      

  4.   

    Response.Write好多时候会出现问题的,发生样式的改变等等;
    Page.RegisterClientScriptBlock还是注册一段脚本块试试吧
      

  5.   

    IIS线程占满了?不会吧,你看下你的服务器的CPU,内存有没有被占满 
      

  6.   

    还真的是Response.Write的问题。结贴