示例Visual Studio 2008 ASP.NET 3.5项目:SOURCE CODE
<form id="form1" runat="server">
<asp:ScriptManager runat="Server" EnableScriptGlobalization="true"
EnableScriptLocalization="true" ID="ScriptManager1" ScriptMode="Debug" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" RenderMode="Inline">
<ContentTemplate>
<div runat="server">
test
<br />
<br />
<asp:TextBox ID="TB1" runat="server" AutoPostBack="True" OnTextChanged="UIDataChanged" />
<br />
<asp:TextBox ID="TB2" runat="server" AutoPostBack="True" OnTextChanged="UIDataChanged" />
<br />
<asp:TextBox ID="TB3" runat="server" AutoPostBack="True" OnTextChanged="UIDataChanged" />
<br />
<asp:TextBox ID="TB4" runat="server" AutoPostBack="True" OnTextChanged="UIDataChanged" />
<br />
<br />
<asp:Label ID="Label1" runat="server" Text="Counter"></asp:Label>
<br />
<br />
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>
基本上我正在将应用程序从IE6转换到IE8。我遇到过一个我无法解决的问题。我到处寻找并发现了一些文章,但没有什么足够详细。
基本上在示例项目中,您会发现4个文本框,每个文本框都配置为AutoPostBack="true"
并触发示例OnTextChange="UIDataChanged"
事件。
我强制 IE8呈现模式使用:<meta http-equiv="X-UA-Compatible" content="IE=8" />
注意:我将文本框1到4称为TB1,TB2等。
在Visual Studio 2010和IE9浏览器中测试了上述内容。
测试案例1:
测试案例2:
测试案例3:
测试案例4:
根据上述调查结果,似乎问题可能出在Internet Explorer渲染引擎中。
答案 0 :(得分:0)
根据调查结果,我得出的结论是,这绝对是IE8渲染问题。它的行为与IE7和IE9不同。
基于进一步调查,IE7和IE8在渲染方面的差异也太大,无法实际执行IE7模式。 执行IE7模式将解决标签问题,但可能会引入更多复杂性,具体取决于其他样式“修复”以适应IE8。
对于将来的更新,如果Internet Explorer 9确实可用或者是每个用户的标准操作环境的一部分,那么我建议强制执行IE9渲染或IE'edge'以符合标准。