好吧,首先,检测浏览器从来都不是一个好主意,部分原因是您必须使用无法信任的用户代理(作为来自用户的任何东西)。你应该确定你需要这样做。为每个浏览器简单地做不同的事情似乎更简单,但事实并非如此,通常,您不需要这样做(除了在极少数情况下和 IE,因为是的,旧的 IE ......)。
但是,如果您知道自己在做什么,则可以将window.location.replace()
其与 setTimeout() 结合使用,如下所示:
setTimeout( function(){ window.location.replace("redirectionpage"); }, 8000 );
或者您可以使用元刷新,这可能更具逻辑性(如果可以的话,您可以将其放入 Javascript 甚至 PHP 中,这可能会更好)。喜欢:
<meta http-equiv="refresh" content="8;URL='redirectionpage'" />
如果您能提供更多详细信息会很好,但这应该足够了。
编辑:如何根据浏览器放置元标记。
所以正如我在评论中所说,添加元标记有两种解决方案。在 HTML 中添加它,然后为非 webkit 浏览器删除它,或者在页面加载时只为 webkits 浏览器添加它。
前者很简单,你把上面的标签放在 中<head>
,最好加上一个id
(为了方便访问)。例如:
<meta http-equiv="refresh" content="8;URL='redirectionpage'" id="webkit_meta" />
然后只需在页面加载时在 Javascript 中将其删除(只需将其放在, 之后的<script>
标记中),类似于<head>
<meta>
var webkit_meta = document.getElementById("webkit_meta");
webkit_meta.parentNode.removeChild(webkit_meta);
关于第二种解决方案,它避免了<meta>
在您的 HTML 中使用对某些浏览器无用的标签。你只需要创建一个meta
标签,设置它的属性,然后把它放在<head>
.
var meta = document.createElement("meta");
meta.httpEquiv = "refresh";
meta.content = "8;URL='redirectionpage'";
document.getElementsByTagName("head")[0].appendChild(meta);
对于 webkit 测试,您可以简单地做(测试它是否是 webkit 浏览器,如果要测试非 webkit 浏览if ( /webkit/i.test(navigator.userAgent) )
器,请添加 a )。!
再一次,不要忘记信息是不可信的。:)
因此,总而言之,您所要做的就是选择其中一种方法,然后<meta>
根据浏览器放置一个脚本来删除/添加您的标签。
<script type="text/javascript">
if ( /webkit/i.test(navigator.userAgent) )
{
var meta = document.createElement("meta");
meta.httpEquiv = "refresh";
meta.content = "8;URL='redirectionpage'";
document.getElementsByTagName("head")[0].appendChild(meta);
}
</script>
或者
<script type="text/javascript">
if ( !/webkit/i.test(navigator.userAgent) )
{
var webkit_meta = document.getElementById("webkit_meta");
webkit_meta.parentNode.removeChild(webkit_meta);
}
</script>
这应该足够了。^^(是的很多代码)