最近在给客户开发一个 ASP.NET web 报表时,发现客户的 IE8 浏览器上,看网页总是怪怪的。 经仔细调查发现,客户的 IE8 浏览器,统一被设置成"对本地网络使用兼容性视图"的设置。(客户公司网络有 windows 域,普通用户无法更改很多 windows 配置)。
经仔细分析,既然客户这边所有用户都是 IE8,就没有必要用 IE8 的兼容模式来模拟 IE6了。
客户公司这种配置,可能是为了让之前基于 IE6 开发/调试的老 Web 系统能够正常使用。
而我们现在开发的是新软件,所有用户都用 IE8,没有必要考虑 IE6 的兼容性, 只需要告诉客户浏览器,使用 IE8 标准模式既可。
尝试了网络所说的在页面的header 区域加
以上均无效。
后查 google 发现,在后台代码中,设置 response 头"X-UA-Compatible"参数就可以正常工作(以下为 C# 代码):
public class TestHander: IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
HttpResponse res = context.Response;
//对 IE8 下 compatibility view setttings, 不论什么设置都有用
res.AddHeader("X-UA-Compatible", "IE=8");
...
}
...
}
特此笔记,以防遗忘,并与诸君共享。