IE8中的jqGrid和兼容性视图模式

时间:2011-03-10 16:35:45

标签: jquery internet-explorer jqgrid ie8-compatibility-mode

在我的上一个项目中,我使用了jqGrid 3.8.2,jQuery 1.4.4和jquery-ui-1.8.10。 我工作的公司仍然使用IE8作为网络浏览器,因此在我的开发中我总是使用该平台进行测试。 我今天注意到,当我使用Visual Studio(2010)ASP.NET开发服务器测试我的机器上的所有内容(winXP)时,jqGrid会正确呈现: Good

正如您所看到的那样,选择非常完美且标题正常。

当我复制生产服务器(Win 2003 + IIS6.0)上的所有内容时,相同的表单会以一种有趣的方式呈现。

Bad

正如您现在所看到的那样,行选择不正常,我在标题中有这些奇怪的箭头。 PS:我使用相同的计算机和浏览器来呈现相同的页面。 PPS:显然,如果我使用不同的(专业;-))浏览器(mozilla,safari,opera,chrome),一切都能正常运行。

2 个答案:

答案 0 :(得分:2)

出于某种奇怪的原因,IE8为所有Intranet站点设置了“兼容性视图”: Compantibility View Settings

所以我看不到网址栏旁边的“兼容性视图”按钮 我必须转到Tools - Compantibility View Settings并取消选中“在兼容性视图中显示Intranet站点”标志 没有我的网站(内部网站点)以标准模式显示,一切都按预期工作 感谢微软的事业,再一次,我为你的愚蠢浪费了几个小时。

<强>更新

正如Oleg建议您可以将这些标记添加到配置文件(ASP.NET和MVC)中:

<system.webServer>
      <httpProtocol>
      <customHeaders>
        <clear />
        <add name="X-UA-Compatible" value="IE=8" />
      </customHeaders>
    </httpProtocol>
    ...
</system.webServer>

但这仅适用于 IIS7 ,因为 IIS6 未使用<system.webServer>
获得相同结果的更好方法 - 它对我有用 - 是在 HEAD 部分的母版页中添加 META 标记:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

我已对其进行了测试,即使您在“兼容性视图”中“显示Intranet网站”处于活动状态,它也能正常运行。

答案 1 :(得分:1)

它看起来更像是部署中的错误。我的意思是,某些文件(例如来自jQuery UI的images子目录)不会被复制或复制,或者您在某处使用绝对而非相对路径。因此,在服务器上部署后无法找到某些文件。

您可以尝试使用FiddlerFirebug查看在网页邮寄过程中无法加载哪些文件。