JavaScript中的浏览器检测

3

当我在IE6及以下版本中打开我的网站时,我需要展示一个不同的网页。

当我的网站在IE6及以下版本中打开时,需要展示fbrowser.html文件。

请给予建议!


1
请参考以下链接了解 JavaScript 中的浏览器检测: http://stackoverflow.com/search?q=browser+detection+in+javascript http://www.quirksmode.org/js/detect.html - Stefan
一个使用特性检测和良好的回退策略设计良好的网站不需要检测浏览器。你将如何处理无法识别的浏览器? - RobG
3个回答

4
在头部:

<!--[if lte IE 6]>
<meta http-equiv="refresh" content="0; url=fbrowser.html">
<![endif]-->

抱歉,不需要使用 JavaScript。


很有趣 - 那里是由谁进行解析和解释的? - nwaltham
1
如果我没错的话,应该是<!--[if lte IE 6]>,结尾缺少>。 - Sudesh
1
@user859955 这些是条件注释,仅被IE浏览器使用。这样做可以将内容从其他浏览器中隐藏。 - Mr Lister
是的,现在它可以工作了。但我需要为所有的HTML页面都这样做。把这段代码粘贴到所有页面中是唯一的解决方法吗?还是有办法在打开域名时重定向到frowser.html?而且它不仅适用于IE6,还适用于IE6及以下版本。 - Sowmya
这是一个完全静态的网站。HTML。 - Sowmya
显示剩余3条评论

1

0

根据this的回答,您可以尝试类似以下的操作:

<script type="text/javascript">
    // <![CDATA[
    var BrowserCheck = Class.create({
        initialize: function () {
            var userAgent = navigator.userAgent.toLowerCase();
            this.version = (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1];
            this.safari = /webkit/.test(userAgent) && !/chrome/.test(userAgent);
            this.opera = /opera/.test(userAgent);
            this.msie = /msie/.test(userAgent) && !/opera/.test(userAgent);
            this.mozilla = /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent);
            this.chrome = /chrome/.test(userAgent);
        }
    });    
    // ]]>
</script>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接