解决:IE8.0浏览器的User-Agent显示MSIE7.0

今天意外发现ewebeditor以前做好的ie6、ie7、ie8兼容今天不能用了,研究了半天,无奈,

我用的是IE8,写句alert(navigator.appVersion)发现得到的结果竟然显示的是MSIE7.0,这是为什么呢?不是应该是MSIE8.0吗?看来不兼容的问题就出现在这了!下面一一介绍方法!

首先说下出现这种现象的原因!

微软的新版浏览器Internet Explorer 8在2008年上半年推出第一个Beta测试版,同时会对User-Agent String(用户代理字符串)进行升级,网页开发人员也必须同步更新,以便支持IE8。

每个网页要求的HTTP Header(标头)都会包含一个简单的字符串,即“User-Agent”,用于让服务器识别用户浏览器的类型和版本。IE8发布后,User- Agent会从“MSIE 7.0”改为“MSIE 8.0”,比如Windows Vista IE8用户的User-Agent字符串就是:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)

微软的内部测试显示,那些严格要求User-Agent字符串与特定浏览器版本必须相符的网站会无法识别IE8,因此需要移除或升级这种检查机制。

此前5/6/7的Beta测试版都使用了不同的User-Agent,也就是在版本号后边加上字母“b”表示这是测试版,比如Windows Vista上的IE7测试版:

Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)

但这导致了很多网站的兼容性问题,因为“MSIE”和后边的分号之间通常都只是浮点数字,加上字母b之后服务器就无法识别了。为避免这种问题再次初现,IE8测试版的User-Agent不会带有字母b,而是和正式版保持一致。

网页如要识别是否运行在测试版浏览器里,可以使用如下代码:

if ((null != window.navigator.appMinorVersion) &&
    (window.navigator.appMinorVersion.toLowerCase().indexOf("beta")>-1))

       window.alert("This is beta browser.")
}
else

       window.alert("This is NOT beta browser.");
}

同时为了方便Beta测试用户使用新版本,IE8会提供一个新的选现“报告IE7 User-Agent字符串”,选中的话IE8 Beta就会发送IE7的User-Agent字符串,以兼容尚未支持IE8的网站。

解决:IE8.0浏览器的User-Agent显示MSIE7.0

 

解决方法:打开IE浏览器,然后在"命令栏"里找到"工具"->"兼容性视图设置",打开后,如果您想对所有的网站都取消这种兼容性,就把下面"在兼容性视图中显示所有网站"的勾去掉,(我是把下面的勾都去了),然后关闭后,重新打开页面就可以了,这时你会发现已经变回MSIE8.0了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值