您好,我已经确定了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‘的版本。
有没有可能帮上忙?
发布于 2014-04-15 03:12:56
正如你所指出的,你真的不应该这样做。但是如果你设置了这个,注意你的条件检查是关闭的:
navigator.appName解析为"Microsoft Internet Explorer",而不是您所写的"Internet Explorer“。
此外,第一个字符navigator.appVersion不会为您提供浏览器的版本。在IE10中,它解析为"5.0 (兼容;MSIE10.0;Windows NT6.1;WOW64;三叉树/6.0;“
要使您的代码正常工作,您需要将其更新为类似以下内容:
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/
发布于 2014-04-15 03:09:40
您可能遗漏了分号(编辑:不需要,但大多数解析器可以更好地使用分号)?
另外,检查版本字符串,你只需要获取你称之为'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>https://stackoverflow.com/questions/23068107
复制相似问题