Dee*_*000 87 javascript ie8-compatibility-mode internet-explorer-9
我需要知道通过用户代理字符串识别自己的IE7或IE8的浏览器是否真的是那些浏览器,或者它是否是7或8兼容模式下的IE9.
从我在用户代理字符串中看到的,IE7兼容模式下的IE9,为真正的IE7提供了相同的字符串.是否有一个额外的属性/元素/对象,我可以测试它是否真的"伪装"IE9?
我假设文档模式无效,因为我的脚本加载到的页面可能是强制怪癖或强制特定设置.
我希望IE9具有一些存在的属性,无论是在7,8或9模式下都可以测试.
编辑添加...
好的,我现在看到我哪里出错了.我正在使用"浏览器模式"下拉菜单并将其切换到IE8和IE7,并认为这分别是"IE8兼容模式"和"IE7兼容模式".这当然不是真的.开发人员工具的浏览器模式确实将其切换为"就像"那些旧的浏览器,因此报告原始的useragent字符串是正确的.
如果我留在IE9或兼容IE9浏览器模式,并尝试将文档模式下拉变种来代替的话,我其实做得到"三叉戟/ 5.0"存在于所有8种组合(双浏览器模式和4种文档模式).我只需要避免选择浏览器模式IE7和IE8,因为它们确实是(模拟)IE7和IE8.
因此,页面,非开发人员用户,元标记或Microsoft的兼容性列表都无法将IE9置于这种无法识别的状态.
只需使用if(navigator.userAgent.indexOf("Trident/5")>-1)就足够了.
别担心,这不适用于样式,格式,逻辑或页面内容.我对这些东西使用特征检测.我只需要检测IE9(无论它处于什么模式)并做出非页面内容决定.
感谢您通过您的建议和链接指导我的答案.
Den*_*s G 67
实际上,IE9在IE7兼容模式下运行时,用户代理字符串是不同的,因此这将是区分不同IE版本的最佳方式之一.
与IE8类似,IE9的兼容性视图将映射到IE7标准模式,而兼容性视图中的IE9的UA字符串将是:
Run Code Online (Sandbox Code Playgroud)Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/5.0)在兼容性视图中,IE9通过应用程序版本号(Mozilla/4.0)和版本令牌(MSIE 7.0)将自身报告为IE7.这样做是为了兼容性.从"Trident/4.0"到"Trident/5.0"的递增三叉戟令牌允许网站区分在Compat View中运行的IE9和在Compat View中运行的IE8.
(我强调的是).因此,用户代理字符串与报告自身为"Mozilla/4.0"和MSIE 7.0相同,但IE9将始终为Trident/5.0 - 无论是MSIE 7.0,MSIE 8.0还是MSIE 9.0.
实际上你应该看看这个伟大的编译:浏览器ID(用户代理)字符串甚至更好useragentstrings.com
Yuh*_*Bao 47
document.documentMode 是文档模式的最佳方式.
Gre*_*reg 20
IE7不包含有关Trident的任何信息
User-Agent : Mozilla/4.0 (compatible; MSIE 7.0)
Run Code Online (Sandbox Code Playgroud)
IE8包含这个字符串:"Trident/4.0"
User-Agent : Mozilla/4.0 (compatible; MSIE 8.0; Trident/4.0)
Run Code Online (Sandbox Code Playgroud)
IE9包含这个字符串:"Trident/5.0"
IE9在兼容模式下:
User-Agent : Mozilla/4.0 (compatible; MSIE 7.0; Trident/5.0)
Run Code Online (Sandbox Code Playgroud)
IE9在正常模式下:
User-Agent : Mozilla/5.0 (compatible; MSIE 9.0; Trident/5.0)
Run Code Online (Sandbox Code Playgroud)
Dr.*_*lle 11
我希望IE9具有一些存在的属性,无论是在7,8或9模式下都可以测试.
检查例如style.opacity,它是在IE9中引入的,无论兼容模式如何都可用:
<![if IE]>
<script>
if(typeof document.documentElement.style.opacity!='undefined')
{
//this must be at least IE9
}
</script>
<![endif]>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
85020 次 |
| 最近记录: |