除了Internet Explorer 8之外的一切目标 -

时间:2014-01-21 23:46:23

标签: javascript internet-explorer browser-detection

我想定位所有除了 IE,版本8及更低版本。通常,我会使用这样的条件评论:

<!--[if !IE]><!--><p>Do non IE things</p><!--[if !IE]><!-->

然而,这针对版本9及更低版本。有没有办法只针对版本8及更低版本,可能使用JavaScript?

由于

2 个答案:

答案 0 :(得分:4)

应该像

一样简单
<!--[if IE gt 8]><!--> content here <!--<![endif]-->
  • IE 8及以下将尊重条件而不显示内容
  • IE 9将通过条件(因为它不是IE 8)并显示内容
  • 其他所有内容(包括IE 10和11)都会忽略条件,只需注释并显示内容

JSFiddle demo

(编辑:刚刚注意到你说版本8及以下。更新了答案以反映出来)

答案 1 :(得分:0)

这在IE11中不起作用,它忽略了条件。您最好进行功能检测,而不是浏览器嗅探您正在进行的操作。以下是我在SPA中使用的脚本,用于在用户使用过时的浏览器时将用户重定向到核心站点。

    <script>

    var ef = "?_escaped_fragment_=";

    if (!('querySelector' in document)
         || !('localStorage' in window)
         || !('addEventListener' in window)
        || !('matchMedia' in window)) {

        if (window.location.href.indexOf("#!") > 0) {
            window.location.href = window.location.href.replace("#!", ef);
        } else {
            if (window.location.href.indexOf(ef) < 0) {
                window.location.href = window.location.href + ef;
            }
        }

    } else {

        if (window.location.href.indexOf(ef) >= 0) {
            window.location.href = window.location.href.replace(ef, "#!");
        }
    }

</script>