用$.browser.version经常出现一些不准确的状况,最近碰到,做了一些总结,不知道是否全面。
用javasript的navigator.userAgent.indexOf(\"MSIE 8.0\")取法结果是一样的。
1、用webbrowser加载htm、html页面,此时加载后获取IE的版本就是不准确的,比如我的机器是IE9,但是通过webbrowser加载之后,$.browser.version方法取得的版本便是变成了7.0,用“<meta http-equiv=\"x-ua-compatible\" content=\"IE=5;IE=7;IE=8;IE=9;\"/>”强制解析后取得的版本依然是7.0,如果想要webbrowser取得正确的结果还是要修改注册表。
此种问题的解决方案是:在后台通过注册表获取:
<span style=\"font-size:18px;\">private int GetIEVersion()
{
using (Microsoft.Win32.RegistryKey versionKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@\"Software\\Microsoft\\Internet Explorer\"))
{
string version = versionKey.GetValue(\"Version\").ToString();
int iVersion = int.Parse(version.Substring(0, 1));
return iVersion;
}
}</span>
2、用“<meta http-equiv=\"x-ua-compatible\" content=\"IE=5;IE=7;IE=8;\"/>”强制解析,我的机器是IE9,添加此标签之后,再$.browser.version获得的版本是8.0。
3、嵌套Iframe的状况,如果外层是IE8解析,内层是IE9解析,这样内层获取的版本是IE9,但是实际上页面是按照IE8来解析,这样就会造成判断和实际的执行不符合。
此种情况应用应该比较少,如果遇到需通过内外层解析同时判断方可解决。
本文地址:https://www.stayed.cn/item/20789
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我