如何解决检测浏览器是否为IE 7或更低版本?
| 因此,我将添加一个重定向到我的网站,以将使用7或更低版本的每个用户扔到另一个页面并提出此JavaScript,但它似乎已停止工作。<script type=\"text/javascript\">
if (/MSIE (\\d+\\.\\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
if (ieversion<=8)
window.location = \"ie.html\"
}
window.location = \"main.html\"
</script>
解决方法
您的代码总是导致变为
main.html
。即使代码落在<8
中,您也会从ѭ3fall跌落到ѭ4setting的设置中。
考虑通过以下任一方法进行重构:
设定为ie
之后再设定return
。
要么
var redir=\"main.html\";
if (/MSIE (\\d+\\.\\d+);/.test(navigator.userAgent))
{
var ieversion=new Number(RegExp.$1);
if (ieversion<=8)
{
redir = \"ie.html\";
}
}
window.location = redir;
,查看条件注释。
因此,您可以执行以下操作:
<script type=\"text/javascript\">
<!--[if (!IE)|(gt IE 7)]>
window.location = \"ie.html\"
<![endif]-->
<!--[if lt IE 8]>
window.location = \"main.html\"
<![endif]-->
</script>
,有条件的注释(如@Kon所建议)是可行的方法。这是一个可行的实现:
<script type=\"text/javascript\">
var ie7OrLower = false;
</script>
<!--[if lte IE 7]><script type=\"text/javascript\">
ie7OrLower = true;
</script><![endif]-->
<script type=\"text/javascript\">
window.location = ie7OrLower ? \"ie.html\" : \"main.html\";
</script>
,您可以使用以下正则表达式对其进行测试:(MSIE\\ [0-7]\\.\\d+)
这是一个有关如何使用它的JavaScript示例:
if (/(MSIE\\ [0-7]\\.\\d+)/.test(navigator.userAgent)) {
// do something
}
,我一直使用Quirks模式的BrowserDetect.js来满足我的浏览器检测需求。签出-http://www.quirksmode.org/js/detect.html
引用.js文件后,您可以访问许多信息:
//Browser Name
BrowserDetect.browser
//Browser Version
BrowserDetect.version
//Operating system
BrowserDetect.OS
,我只使用http://www.ie6nomore.com/上的示例
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。