我试图在旧的 ASP.NET 应用程序中找到一个错误,它导致 IE8 无法单击我们应用程序中的以下“按钮”区域:
<td
width="150px"
class="ctl00_CP1_UiCommandManager1i toolBarItem"
valign="middle"
onmouseout="onMouseOverCommand(this,1,'ctl00_CP1_UiCommandManager1',0,0);"
onmouseover="onMouseOverCommand(this,0,'ctl00_CP1_UiCommandManager1',0,0);"
onmousedown="onMouseDownCommand(this, 'ctl00_CP1_UiCommandManager1', 0, 0);"
onmouseup="onMouseUpCommand(this, 'ctl00_CP1_UiCommandManager1', 0, 0);"
id="ctl00_CP1_UiCommandManager1_0_0">
<span style="width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap;">
NEW
</span>
</td>
当我们把IE8切换到IE7兼容模式,问题就消失了,IE7就可以点击了。
由于上述 HTML 是由第三方控件(Janus,http://www.janusys.com/controls)生成的,我们没有源代码。
- 有没有人遇到过类似的IE8问题?
- 我已经确定它实际上触发了 onMouseDownCommand 命令
- IE8中按钮区域的CSS也不同,它没有IE7中的颜色阴影。我可以想象某个地方的 HTML 是无效的并且 IE8 更严格并没有发挥作用,但是在哪里呢?
- 欢迎提供有关如何缩小此错误范围的任何建议
回答:
原来是应用程序没有检查“MSIE 8.0”的 navigator.agent,因此认为 IE8 具有非 Internet Explorer 浏览器。
感谢 Lazarus 的提示,IE8 Javascript 调试器非常好,就像 IE 的 Firebug,会更多地使用它!