浏览器版本检测和重定向

时间:2014-04-14 19:00:03

标签: javascript html5 redirect browser-detection

您好我已经确定了HTML5 / CSS3元素,这些元素会导致旧浏览器难以使用我的网站。 我知道反对使用这种方法重定向,但我认为它对我很有用。 尝试过这个和其他几个论坛,我正在测试使用IE8.0.6001.18702并且它没有重定向

<script type="text/javascript"> 
<!-- 
browser = navigator.appName 
ver = navigator.appVersion 
version = ver.substring(0,1) 
if (browser=="Internet Explorer") { 
if (version<="8.1") 
document.location.href="lores.htm" 
} 
if (browser=="Safari") { 
if (version<="6.0") 
document.location.href="lores.htm" 
} 
if (browser=="Firefox") { 
if (version<="5.0") 
document.location.href="lores.htm" 
} 
if (browser=="Chrome") { 
if (version<="15.0") 
document.location.href="lores.htm" 
} 
if (browser=="Opera") { 
if (version<="11.10") 
document.location.href="lores.htm" 
} 
//--> 
</script>

所以事情似乎没什么用,所以我真的可以做一些建议。我已经包含了这个示例,以显示我想要为基本网站重定向到'lores.htm'的版本。

手的任何机会?

2 个答案:

答案 0 :(得分:1)

正如你所指出的,你真的不应该这样做。但是,如果您对此进行设置,请注意您的状况检查已关闭:

navigator.appName解析为&#34; Microsoft Internet Explorer&#34;,而不是&#34; Internet Explorer&#34;就像你写的那样。

此外,第一个字符navigator.appVersion不会为您提供浏览器的版本。在IE 10中,它解析为&#34; 5.0(兼容; MSIE 10.0; Windows NT 6.1; WOW64; Trident / 6.0;&#34;

要使代码正常工作,您需要将其更新为:

function get_browser_version(){
  var N=navigator.appName, ua=navigator.userAgent, tem;
  var M=ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
  if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1];
  M=M? [M[1], M[2]]: [N, navigator.appVersion, '-?'];
  return M[1];
}

var browser = navigator.appName;
var version = get_browser_version();

if (browser=="Microsoft Internet Explorer") { 
    if (version<="8.1") 
        document.location.href="lores.htm" 
} 

How can you detect the version of a browser?

复制的功能

请重新考虑这样做。你是否难以设计HTML5元素?考虑使用html5shiv:https://code.google.com/p/html5shiv/

答案 1 :(得分:-3)

你可能会错过分号(编辑:不是必需的,但大多数解析器都能更好地使用它们)?

另外,查看版本字符串,你只需要调用'ver'字符串的第一个字符,你将它与一个大于那个字符串的字符串进行比较(看看opera '11 .10')。您应该在第一个空格(应该在完整版本号之后)的子字符串。

<script type="text/javascript">
browser = navigator.appName;
ver = navigator.appVersion;
version = ver.substring(0, ver.indexOf(' '));
if (browser == "Internet Explorer") {
    if (version <= "8.1")
        document.location.href = "lores.htm";
}
if (browser == "Safari") {
    if (version <= "6.0")
        document.location.href = "lores.htm";
}
if (browser == "Firefox") {
    if (version <= "5.0")
        document.location.href = "lores.htm";
}
if (browser == "Chrome") {
    if (version <= "15.0")
        document.location.href = "lores.htm";
}
if (browser == "Opera") {
    if (version <= "11.10")
        document.location.href = "lores.htm";
}
</script>