访问网页时检测所有版本的IE

时间:2011-01-21 14:47:38

标签: jquery

我在使我的网站在多个浏览器中工作时遇到了很大的问题。我想检测用户何时使用任何IE版本。

是否有人在检测到IE时有编码提醒我?

戈登

5 个答案:

答案 0 :(得分:6)

您可以使用$.browser属性:

if ($.browser.msie) {
    alert('IE !');
}

答案 1 :(得分:1)

if( /msie/.test(navigator.userAgent.toLowerCase()) ) {
    // omg it's an internet explorer
}

这是真正的快速和肮脏的解决方案。无论如何,你应该进行功能检测而不是浏览器检测。例如,如果您需要JSON解析器,请转到

if( 'JSON' in window ) {}

这将是正确的解决方案。检查浏览器(甚至可能是版本)是不可靠的。

答案 2 :(得分:1)

为什么要检测IE?特征检测而不是浏览器嗅探是尽可能处理事物的首选方式。 (我不认为总是可能,但它几乎总是可能的。)jQuery的jQuery.support提供了许多这些,并且它的链接页面提供了很好的一般来说,链接到特征检测。或者,正如达林所说,你可以看一下$.browser,但这确实是最后的选择。

如果您发布有关跨浏览器的实际问题的问题,那么很高的人可以帮助您以不依赖浏览器嗅探的方式解决这些问题。

答案 3 :(得分:1)

除了浏览器与特征检测的价值判断之外,您还可以使用IE条件评论:

<script type="text/javascript">
var isIE = false;
</script>
<![if IE]> <!--- only runs in IE --->
    <script type="text/javascript">isIE = true;</script>
<![endif]>

答案 4 :(得分:0)

$。在最新版本的jquery中不支持browser.msie你可以添加jquery-migrate-1.2.1.min.js或使用以下jquery函数...对于IE它也会给你版本... < / p>

调用currentBrowser()。浏览器检测浏览器和currentBrowser()。版本为IE版本.........

function currentBrowser() {

$.returnVal = "";

var browserUserAgent = navigator.userAgent;

if (browserUserAgent.indexOf("Firefox") > -1) {

    $.returnVal = { browser: "Firefox" };
}

else if (browserUserAgent.indexOf("Chrome") > -1) {

    $.returnVal = { browser: "Chrome" };
}

else if (browserUserAgent.indexOf("Safari") > -1) {

    $.returnVal = { browser: "Safari" };
}

else if (browserUserAgent.indexOf("MSIE") > -1) {

    var splitUserAgent = browserUserAgent.split(";");

    for (var val in splitUserAgent) {

        if (splitUserAgent[val].match("MSIE")) {

            var IEVersion = parseInt(splitUserAgent[val].substr(5, splitUserAgent[val].length));
        }
    }

    $.returnVal = { browser: "IE", version: IEVersion };
}

else if (browserUserAgent.indexOf("Opera") > -1) {

    $.returnVal = { browser: "Opera" };
}

else {
    $.returnVal =
     { browser: "other" };
}

return $.returnVal;
}