在 IE 7+ 检测的条件注释中检测 IE 10
Detect IE 10 among conditional comments for IE 7+ detection
>我有一个带有用户注册表单的页面。我用<!--[if IE]> ... <![endif]-->
包装它,只在IE中显示它。并显示其他浏览器的相应错误:<![if !IE]>...<![endif]>
.
但这并不完全适用于IE 10。可以使用java脚本来确定IE 10,例如:
<script type="text/javascript">
var pattern = /MSIE's(['d]+)/;
var ua = navigator.userAgent;
var matched = ua.match(pattern);
if (matched) {
alert("IE 10");
}
</script>
但是我怎样才能用我用于IE7+的html块绑定它呢?
更新
它需要使用IX509 Windows界面,该界面需要IE使用,因为它是COM对象(我不确定,但似乎它使用ActiveX),否则使用IX509时页面上会出现奇怪的错误。
对于 ActiveX 支持,只需检查 JS中是否存在 ActiveXObject:
if(typeof window.ActiveXObject != "undefined")
或者更具体地说:
if(typeof window.ActiveXObject == "function")
如果您确信脚本中的范围不是问题并且不希望window.
,则变量当然会自动从window
对象中获取,因此您可以将代码缩短为:
if(typeof ActiveXObject != "undefined")
虽然它只应该在了解潜在后果的情况下使用
使用功能检测,而不是浏览器检测。
您可以使用以下简单的代码行检测浏览器是否支持 ActiveX:
if(typeof window.ActiveXObject != "undefined") { ..... }
为什么?
浏览器检测很脆弱 - 您的检测代码可能无法获取较新版本的 IE,从而导致您的网站中断。事实上,这正是这里发生的事情。而且您可能会在IE11上再次遇到相同的问题。上述功能检测脚本将在所有浏览器和所有版本中正常工作。
并非所有 IE 安装都有可用的 ActiveX。如果您检测到IE,然后假设它支持ActiveX,则对于那些没有IE的人来说,您的网站将严重崩溃。同样,改用功能检测可以避免此问题。
我改进了最初尝试的方法。
首先,错误页面用以下<div>
包装:
<div id="not_ie" style="display:none">
IE表单也用<div>
包装:
<div id="ie" style="display:none">
以下js根据浏览器类型使表单或错误可见:
<script type="text/javascript">
var pattern = /MSIE's(['d]+)/;
var ua = navigator.userAgent;
var matched = ua.match(pattern);
if (matched) {
var elem = document.getElementById("ie");
elem.style.display = "inline";
} else {
var elem = document.getElementById("not_ie");
elem.style.display = "inline";
}
</script>
无需使用条件注释、确定 ActiveX 或特定于版本的 IE 功能。
- 如何检测IE浏览器的角度
- 使用Javascript检测IE中的高级隐私设置
- 现在 $.browser 已被弃用,我如何使用 jQuery 检测 IE 8
- 如何检测 IE 10+ 的错误事件
- 是否可以检测IE何时忽略xml文档中的空白文本节点
- 在 JavaScript 中检测 IE 版本(v9 之前)
- 在 IE 7+ 检测的条件注释中检测 IE 10
- 如何检测IE'脚本化窗口'安全设置已启用/禁用
- 我可以使用HttpBrowserCapabilities对象在服务器端检测IE文档模式吗
- 如何使用javascript检测IE/Edge
- 如何检测IE和Edge浏览器?
- 如何检测IE的版本
- JavaScript:检测IE的最佳方式
- 仅检测IE浏览器和警报一次
- 使用javascript自动检测IE版本、截图、打印
- 如何检测IE“更新版本”
- 如何使用JavaScript检测IE和Microsoft Edge浏览器?
- 检测IE浏览器并使用chrome浏览器打开相同的url
- Internet Explorer - 使用 JavaScript 和 userAgent 轻松检测 IE 版本
- 如何检测IE中由于刷新按钮和上下文菜单导致的页面刷新