安装IE7以后,可能由于安装不够充分、也可能由于此后又安装了某些不恰当的软件、更加可能是在线更新了某些不恰当的补丁,IE7就不能在线更新了。进入在线更新页面,会收到一封感谢信,劝告你采用IE 5.0以上的浏览器进行在线更新。显然,微软的网站不认识自家的孩子了。
出现个问题的原因是,安装IE7以后的某些不恰当操作导致IE7的User-Agent字符串出现了错误。如果浏览器不能把正确的User-Agent字符串传递给服务器,那服务器就会搞错浏览器的版本。
在浏览器的地址栏中输入:
javascript:alert(navigator.userAgent)
就可以看到自己浏览器的User-Agent字符串了。如果在Windows Xp操作系统下面,IE7正确的User-Agent字符串如下:
Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 5.1)
如果是Windows Vista,则是:
Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0)
如果你IE7的User-Agent字符串不是上述这些,尤其是字符串中没有类似MSIE 7.0的字样,那就是无法在线更新的出错原因了。由于User-Agent出错,微软把你的IE 7.0当成非IE浏览器了。
微软发布了一个小工具 User Agent String Utility version 2,这个工具原来的作用是把IE7伪装成为IE6,不过,也可以用这个工具来恢复IE7的User-Agent。顺便说一句,为什么要把IE7伪装成IE6呢,因为互联网上有不少网页甚至微软自己的网页目前只支持IE6,嘿嘿!
首先,下载并安装这个工具。如果上面的链接由于某些原因导致你无法下载,可以试一试这一个链接。
其次,运行这个工具,暂时把IE7伪装成为IE6,然后打开IE7,你会在标题栏上看到伪装的标记,同时用上述“原因分析”中提到的方法验证以下伪装的User-Agent字符串是否成功。
最后,把所有的IE7都关闭,伪装就解除了。有趣的是这时候再打开IE7,User-Agent字符串就恢复正常了。
实际上,IE7的User-Agent字符串是可以通过注册表修改的。所在的位置如下:
HKEY_CURRENT_USER
Software
Microsoft
Windows
CurrentVersion
Internet Settings
5.0
User Agent
以及
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows
CurrentVersion
Internet Settings
5.0
User Agent
在这两个位置下面,使用Platform、Version和Compatible可以定义整个浏览器的User-Agent字符串。缺省情况下,Platform和Version都应该被删除的,这样就会使用浏览器自带的缺省User-Agent字符串。
将以上位置的注册表修改后,把所有IE7都关上,再打开一个新的IE7,采用上述“原因分析”中提到的方法可以观察到User-Agent字符串被恢复成缺省。
波波坡原创文章 链接:http://www.bobopo.com/article/code/ie7_windows_update.htm
标签: 软件
关键词: Internet Explorer 7, IE7, 互联网, 浏览器, Windows在线更新, User Agent, 错误
创建日期: 2007-06-12