2009-07-08 29 views
2

根据以下post的建议,我将以下代码添加到.NET客户端的一个网站中。如果使IE8仿真IE7的头标签不起作用,该怎么办?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html> 
    <head> 
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 

由于某些原因,网站仍然无法正确显示菜单。如果我进入IE8菜单并添加Web URL以始终以兼容模式显示,那么网站将开始正常工作。我应该如何继续?

注意:这是一个在2006 - 2007年建成的旧网站。这不是目前发展中的网站。

回答

6

我应该怎么做?

找出什么阻止菜单在IE8中工作并对其进行修复。解决问题的根源比治疗症状更好。根本问题是菜单被打破。您打算仅仅通过IE将它显示为另一个浏览器来掩盖它。修复根本原因,这种兼容性问题不会成为问题。

编辑:

无论如何,根据this articleIE=EmulateIE7 meta标签可能会将页面作为标准或怪癖,根据页面的文档类型。由于您的文档类型是过渡性的,因此可能会使用您不打算的模式。我会做的是尝试该页面上列出的其他模式:

Quirks*   IE=5   IE 5.5 (Quirks) rendering mode 
IE 7 Standards* IE=7   IE 7 standards rendering mode 
IE 7 Emulation  IE=EmulateIE7 IE 7 standards or Quirks rendering, depending on DOCTYPE 
IE 8 Standards* IE=8   IE 8 standards rendering mode 
IE 8 Emulation  IE=EmulateIE8 IE 8 standards or Quirks rendering, depending on DOCTYPE 
Latest Mode*  IE=edge  Always use the latest standards rendering mode 
+0

谢谢Welbog。这将是理想的情景,也是最耗时的情景。由于网站菜单是在2006年购买的.NET插件完成的,没有人愿意支持它,所以很可能不会发生。我会以任何方式记住它。 – Geo 2009-07-08 11:51:45

+0

@Geo:听起来像你在2006年被扯掉一样。 – Welbog 2009-07-08 11:53:47

0

您是否尝试过在IIS中添加http标头网站?

X-UA兼容:IE = EmulateIE7

http://blogs.msdn.com/ie/archive/2008/06/10/introducing-ie-emulateie7.aspx列出了如何做到这一点的不同版本的IIS的一些链接。

但是,就像上面说的Welbog所说的,你应该改用IE8来完成这个工作。引入了该标题是为了更容易将现有网站迁移到IE8,而不是针对开发中的新网站。

0

你试过IE=7

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

如果Emulation标签不起作用,那么很有可能该页面基于User-Agent字符串发回不同的数据。

当站点位于兼容性列表中时,用户代理字符串发送“7.0”,但当站点使用META标记时发送“8.0”(因为请求已在服务器请求IE7时发送模式)。

您可以使用Fiddler(www.fiddler2.com)来解决这一点,或者尝试将用户代理选择器插件(http://www.enhanceie.com/ietoys/uapick.asp

相关问题