这可能与 ExtJS 没有任何关系,但我必须提供所有信息才能得到正确的答案:D。
我有一个使用 ExtJS 4.1 来显示一些网格面板的应用程序。
当我在本地主机上运行应用程序时,一切看起来都正常。
当我在远程服务器上部署应用程序时,网格不再按 IE8 中的要求显示:所有信息都被挤压在表格中,无论列对齐如何(列标题很好,但其他单元格是重叠)。
让事情变得更通用:
相同的应用程序在本地主机上运行良好(无论在哪台计算机上),但是当我将其部署在服务器上时,IE8 不会按应有的方式显示内容。发生这种情况是因为 CSS 或 JavaScript 文件(可能都与 ExtJS 相关)。
为什么?
最佳答案
根据 OP 的请求,将此作为答案发布:
默认情况下,IE 运行时会为 Intranet 站点启用兼容性 View 。其原因可能是大多数使用 IE 的 Intranet 站点都是专门为 IE 编写的,因此当 IE 开始更严格地遵守标准时就会崩溃。
这可能会导致本地查看的内容与 Intranet(以及 Internet)上查看的内容之间存在差异。这可以通过 Windows 组策略进行全面更改;有些组织可以接受这一点,有些组织不能/不会做出改变。
如果声明 meta http-equiv="X-UA-Compatible"content="IE=edge"
不能修复行为(如评论中所述),我将首先检查兼容性 View 实际上是问题所在。
其他可能性
我假设您拥有正确的文档类型(例如严格的 HTML 5 或 HTML 4,尽管我相信其他文档类型也可以正常工作)。这与“X-UA-Compatible”声明结合使用。
格式错误的标记可能会触发怪癖模式,这在几乎任何情况下看起来都很糟糕。情况可能并非如此,因为它在本地看起来很好,但很容易检查。确保您的文件合理valid更重要的是,DTD 之前没有前导字符(这会使解析器感到困惑)。不正确的服务器代码可能会导致数据在 HTML 之前写入响应流,从而导致此行为。
最后,将问题简化为最简单的形式,即找到导致该行为的最基本的标记。如果这不能给您任何见解,请将损坏的代码发布在 JS Fiddle 中。
关于javascript - IE8 远程页面渲染错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11685257/