一个很简单的页面,前台代码如下:<BODY>
<form id="Form1" method="post" runat="server">
<table class="table" cellSpacing="0" cellPadding="0" width="100%" bgColor="#7bb2f7" border="0">
<tr>
<td align="left" bgColor="#ffffff">
<div id="DivReuslt" align="center" runat="server">
</div>
</td>
</tr>
<tr>
<td background="<%=ImageUrl%>index_cont_table_bt_bg.gif" height="5">&nbsp;</td>
</tr>
                <tr>
                    <td><asp:imagebutton id="BtnQuery" runat="server" OnClientClick="return ValidateInput();" OnClick="BtnQuery_Click" ToolTip="生成报表" ImageUrl="~/App_Themes/Default/Images/button_maths.gif"></asp:imagebutton></td>
                </tr>
</table>
 </form>
</BODY>
在后台的BtnQuery_Click事件里,动态生成一个table,然后
最后为DIV设置内容: StringBuilder builder = new StringBuilder();
builder.Append("<table id='TbExcel'>");
..............生成table内容操作,在此省略了
builder.Append("</table>");
DivReuslt.InnerHtml=builder.ToString();
基本上没有其它操作,就是这样一个生成报表table的页面,部署到服务器后,在有的电脑上无论用IE6,IE7,IE8都正常的,就是不管怎么折腾都正常。。但是在有的电脑上如果是在Frame中在父窗口内打开,就显示“Internet Explorer无法打开站点,已终止操作”。。如果在新的窗口打开就正常。。这个问题真的太奇怪了,真的不知道程序哪里有问题,因为这个页面很简单啊。。  然后,最后在网上看了有人说是javascript种如果document的state没有complate的时候,用InnerHtml就是报这个错误,于是我改用Javascript的方式在前台判断,当Document的ReadyState Complete的时候,我再设置DivReuslt.InnerHtml的属性,这次在所有电脑上不报错了。我的疑问是,这个解决的方法好像和我的问题没关系啊,我的DivReuslt.InnerHtml=builder.ToString();是在后台赋值的。。根据ASp.net的页面生存周期,是最后生成html以后才输出到前台的,和“document的state没有complate“没有半毛钱关系啊高人指点下。。

解决方案 »

  1.   

    js设置document和asp.net的执行周期没有直接关系.
      

  2.   

    肯定输出来的数据有客户端脚本
    贴个HTML代码看下就知道 了
      

  3.   

    感觉像是浏览器安全设置问题,或者杀毒软件设置,禁止在frame或者iframe里打开页面,以前熊猫就是通过iframe传播的
      

  4.   

    可以在HTML页面和代码页面结合,效果不错
      

  5.   

    iis部署的问题吧 不能iframe进去?
      

  6.   

    确实没什么JS代码。都是HTML的代码
      

  7.   

    试试在可能出错的js标签里添加上defer="defer"