1

我在页面中添加了以下 javascript,因为当文本过长时,某些下拉列表不会在 IE 中显示全部内容。

$(".dropdown").mousedown(function () {
    if ($.browser.msie) {
        //Do something
    }
});

现在我已经解决了这个问题,我才意识到 IE9 没有这个问题。那么如何从上述测试中排除 IE9 或更高版本?

感谢您的帮助

4

4 回答 4

5
if ($.browser.msie && parseInt($.browser.version, 10) < 9) {
    // your code here for IE < 9
}

更新

$.browser已弃用。

确保您的代码仅在IE< 9 上运行的一种方法是使用条件语句。

<!--[if lt IE 9]>
    <script src="path-to-js.js" type="text/javascript"></script>
<![endif]-->
于 2012-12-20T19:17:20.527 回答
2

您可以在页面的 HEAD 中执行此操作:

<!--[if gt IE 8]>
<script src="myscript.js"></script>
<![endif]-->
于 2012-12-20T19:16:44.850 回答
2

$.browser还有另一个名为 version 的属性,用它来检测正在使用的版本。

console.log($.browser.version)

你真的不应该使用$.browser它,它在 jQuery 的下一个版本(1.9 和 2.0)中消失了。

于 2012-12-20T19:18:39.953 回答
0

使用 jQuery:

if ($.browser.msie  && parseInt($.browser.version, 10) > 9) {
    //exclude
}

这是纯 Javascript 中的相同方法:

<script>

    function getIEVersion() {
        var rv = -1; // Return value assumes failure.
        if (navigator.appName == 'Microsoft Internet Explorer') {
            var ua = navigator.userAgent;
            var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
            if (re.test(ua) != null)
                rv = parseFloat( RegExp.$1 );
        }
        return rv;
    }


    function checkVersion() {
        var ver = getIEVersion();

        if ( ver != -1 ) {
            if (ver > 9.0) {
                // do something
            }
        }
    }

    checkVersion();

</script>

但最好的方法是不使用 UA 嗅探,而是使用像Modernizr这样的特征检测。

于 2012-12-20T19:23:34.550 回答