解决客户 IE 浏览器"兼容性视图"设置带来的问题

最近在给客户开发一个 ASP.NET web 报表时,发现客户的 IE8 浏览器上,看网页总是怪怪的。

调查后发现,客户的 IE8 浏览器,统一被设置成"对本地网络使用兼容性视图"的设置。(客户公司网络有 windows 域,普通用户无法更改很多 windows 配置)。

经仔细分析,既然客户这边所有用户都是 IE8,就没有必要用 IE8 的兼容模式来模拟 IE6了。

客户公司这种配置,可能是为了让之前基于 IE6 开发/调试的老 Web 系统能够正常使用。

而我们现在开发的是新软件,所有用户都用 IE8,没有必要考虑 IE6 的兼容性, 只需要告诉客户浏览器,使用 IE8 标准模式既可。

尝试了网络所说的在页面的header 区域加

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

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

以上均无效。

后查 google 发现,在后台代码中,设置 response 头"X-UA-Compatible"参数就可以正常工作:

public class TestHander: IHttpHandler
{
	public void ProcessRequest(HttpContext context)
	{
		HttpResponse res = context.Response;
		//对 IE8 下 compatibility view setttings, 不论什么设置都有用
		res.AddHeader("X-UA-Compatible", "IE=8");
		...
	}
	...
}

特此笔记,以防遗忘,并与诸君共享。

-------------转载请注明来源:http://www.cnblogs.com/jacklondon

-------------欢迎大家下载试用折桂单点登录系统, http://zheguisoft.com  

原文地址:https://www.cnblogs.com/jacklondon/p/3230521.html