什么是自动将某人redirect到另一个网页的最佳方式?

我从来没有学过JavaScript,但我想这是一个相当简单的问题。 只是想知道最近build议哪种方法。

// use this to avoid redirects when a user clicks "back" in their browser window.location.replace('http://somewhereelse.com'); // use this to redirect, a back button call will trigger the redirection again window.location.href = "http://somewhereelse.com"; // given for completeness, essentially an alias to window.location.href window.location = "http://somewhereelse.com"; 

编辑 :看起来像发布了更好的答案已经离开的用户,我已经巩固了他的答案在这里。

最有build议? 不这样做。 HTTP比JavaScript 更适合工作 (search引擎跟着他们,你可以说它是否是永久的,它们是更快的,等等)。

如果没有…

如果你想立即redirect:

 window.location.replace('http://example.com/'); 

这将在浏览器历史logging中用新的URIreplace当前的URI,所以后退button不会将用户登陆到一个立即再次向前抛出的页面。

如果您不是真的想要redirect,但是想要在某处响应事件发送用户:

 window.location.href = 'http://example.com/'; 

记住要有一个非JavaScript的后备。 链接通常是最好的select,但它取决于上下文。

时间延迟redirect是一个更糟糕的主意。 使用它们的唯一原因是如果你想向用户显示一条消息 – 用户以不同的速度读取消息(当他们做别的事情时,让他们坐在另一个标签中)。 如果信息足够重要,那么它应该足够重要,直到用户阅读并点击下一页的链接。

使用JavaScriptredirect页面时要记住的一件重要事情是,始终提供非JavaScriptredirect! 一个链接可以做,或者更好一个<META>标签,例如: <meta http-equiv="refresh" content="2;url=http://example.com">

这些天,我认为最build议的方法是不做JavaScript (或元)redirect。 你真的需要吗? 你可以使用redirectHTTP标头吗?

W3C的Web内容可访问性指南(7.4)也不鼓励创build自动刷新页面,因为大多数Web浏览器不允许用户禁用或控制刷新率