电脑爱好者之家

当前位置: 主页 > 开发资料 > 程序设计教程 >

jQuery获得IE版本不准确的疑问

时间:2012-11-27 00:22来源:未知 作者:熊猫蜀黍 点击:
用$.browser.version经常出现一些不准确的状况,最近碰到,做了一些总结,不知道是否全面。 用javasript的navigator.userAgent.indexOf("MSIE 8.0")取法结果是一样的

用$.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取得正确的结果还是要修改注册表。

此种问题的解决方案是:在后台通过注册表获取:

  1. <SPAN style="FONT-SIZE: 18px">private int GetIEVersion()  
  2. {  
  3.     using (Microsoft.Win32.RegistryKey versionKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Internet Explorer"))  
  4.     {  
  5.         string version = versionKey.GetValue("Version").ToString();  
  6.         int iVersion = int.Parse(version.Substring(0, 1));  
  7.         return iVersion;  
  8.     }  
  9. }</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来解析,这样就会造成判断和实际的执行不符合。

此种情况应用应该比较少,如果遇到需通过内外层解析同时判断方可解决。

(责任编辑:熊猫蜀黍)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容
  • 正则表达式学习与分析

    入门 \b 是正则表达式规定的一个特殊代码(好吧,某些人叫它 元字符,metacharacter ...

  • Scriptlets和HTML混合

    Scriptlets和HTML的混合 在一个scriptlet中使用了out变量来产生HTML输出。对于更复杂...

  • .NET正则匹配模式

    概述 匹配模式指的是一些可以改变正则表达式匹配行为的选项或修饰符。不同的语言支持...