微软的新版浏览器Internet Explorer 8将在今年上半年推出第一个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 a beta browser.")
}
else
{
window.alert("This is NOT a beta browser.");
}
同时为了方便Beta测试用户使用新版本,IE8会提供一个新的选现“报告IE7 User-Agent字符串”,选中的话IE8 Beta就会发送IE7的User-Agent字符串,以兼容尚未支持IE8的网站。
User-Agent字符串含义 |
标签: