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

发布于 2024-10-21 03:55:43 字数 539 浏览 7 评论 0原文

在我的上一个项目中,我使用了 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),一切都会正常工作。

In my last project I've used jqGrid 3.8.2, jQuery 1.4.4 and jquery-ui-1.8.10.
The company I work for still uses IE8 as a web broswer so in my development I always test with that platform.
I've noticed today that a jqGrid is rendered properly when I test everything on my machine (winXP) using the Visual Studio (2010) ASP.NET Development Server:
Good

As you can see the selection is perfect and the header is ok.

When I copy everything on the production server (Win 2003 + IIS6.0) the same form renders in a funny way.

Bad

As you can see now the row selection is not working properly and I've got these strange arrows in the header.
PS: I am using the same computer and browser to render the same page.
PPS: Obviously, if I use a different (professional ;-) ) browser (mozilla, safari, opera, chrome) everything works properly.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

画▽骨i 2024-10-28 03:55:43

由于某些奇怪的原因,IE8 为所有 Intranet 站点设置了“兼容性视图”:
兼容性视图设置

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

更新

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

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

但这仅适用于IIS7,因为; 不被 IIS6 使用。
达到相同结果的更好方法 - 它对我有用 - 是将 META 标记放在母版页的 HEAD 部分中:

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

我已经测试过它并且即使您启用了“在兼容性视图中显示 Intranet 站点”,它也能正常工作。

For some strange reason IE8 sets the "compatibility view" for all the intranet sites:
Compantibility View Settings

So I couldn't see the "compatibility view" button next to my URL bar.
I had to go to Tools - Compantibility View Settings and uncheck the flag "Display intranet sites in Compatibility View".
No my site (intranet site) is shown in standard mode and everything works as expected.
Thanks Microsoft cause, once again, I've wasted a few hours for your silliness.

UPDATE

As Oleg suggested you can add these tags to your configuration file (ASP.NET and MVC):

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

but this only works in IIS7 cause <system.webServer> is not used by IIS6.
A better way to achieve the same results - and it works for me - is to put a META tag in the master page in the HEAD section:

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

I've tested it and it works even if you have "Display intranet sites in Compatibility View" active.

怪我入戏太深 2024-10-28 03:55:43

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

您可以尝试使用 FiddlerFirebug 查看页面加载期间哪些文件无法加载。

It looks much more as the error in deployment. I mean that either some files (for example from the images subdirectory of the jQuery UI) are not copied or copied or you use somewhere somewhere absolute and not relative paths. So some files could not be found after the deployment on the server.

You can try to use Fiddler or Firebug to see which files could not be loaded during the page loding.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文