用$.browser.version经常出现一些不准确的状况,最近碰到,做了一些总结,不知道是否全面。
用javasript的navigator.userAgent.indexOf("MSIE 8.0")取法结果是一样的。
1、用webbrowser加载htm、html页面,此时加载后获取IE的版本就是不准确的,比如我的机器是IE9,但是通过webbrowser加载之后,$.browser.version方法取得的版本便是变成了7.0,用“”强制解析后取得的版本依然是7.0,如果想要webbrowser取得正确的结果还是要修改注册表。
此种问题的解决方案是:在后台通过注册表获取:
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;
}
}
2、用“
”强制解析,我的机器是IE9,添加此标签之后,再$.browser.version获得的版本是8.0。
3、嵌套Iframe的状况,如果外层是IE8解析,内层是IE9解析,这样内层获取的版本是IE9,但是实际上页面是按照IE8来解析,这样就会造成判断和实际的执行不符合。
此种情况应用应该比较少,如果遇到需通过内外层解析同时判断方可解决。
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn