使用Javascript进行浏览器检测和兼容性检查

时间:2014-10-11 08:04:30

标签: javascript html compatibility browser-detection

我正在尝试从用户代理检测浏览器类型和IE兼容性并相应地重定向。它仅适用于IE,但不适用于Firefox和Chrome。我仍然在寻找解决方案,但还是想不通。

<html>
<head>
<title>Testing </title>
<script src="UserAgent.js" type="text/javascript"></script>
</head>
<body>
<div id="results">Output</div>
<script type="text/javascript">

if (UserAgent.firefox){
    window.location.href("http://www.yahoo.com");
}

if (UserAgent.compatibilityMode) {
    window.location.href("http://192.168.10.236/iecorrect.html");
} else {
    window.location.href("http://www.apple.com");
}

</script>
</body>
</html>

UserAgent.js

if (typeof jQuery == 'undefined') {
document.write("\<script src='http://code.jquery.com/jquery-latest.min.js' type='text/javascript'>\<\/script>");
}

// Create new object
var UserAgent = {
init: function () {
    // Get the user agent string
    var ua = navigator.userAgent;
    this.compatibilityMode = false;      
    this.firefox = ua.toLowerCase().indexOf("firefox") > -1;
    this.chrome = ua.toLowerCase().indexOf("chrome") > -1

    if (ua.indexOf("MSIE 7.0") > -1) {
        this.compatibilityMode = true;
    }
}
};

// Initialize the object
ieUserAgent.init();

2 个答案:

答案 0 :(得分:0)

要检查IE和/或特定版本的IE,最好使用条件语句。

http://www.quirksmode.org/css/condcom.html

答案 1 :(得分:0)

将window.location.href调用更改为以下代码:

if (UserAgent.compatibilityMode) {
    window.location.href = "http://192.168.10.236/iecorrect.html";
} else {
    window.location.href = "http://www.apple.com";
}

你写的就像写jQuery一样:)