我从未学习过JavaScript,不过我想这是一个相当简单的问题。我只是想知道目前最常建议使用哪种方法。
我从未学习过JavaScript,不过我想这是一个相当简单的问题。我只是想知道目前最常建议使用哪种方法。
// 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";
编辑:看起来发表更好答案的用户已经离开了SO,我在这里汇总了他的回答。
最好的建议?不要这样做。与JavaScript相比,HTTP更适合此工作(搜索引擎会跟进,您可以说明是否永久,速度更快等)。
如果不行…
如果您想要立即重定向:
window.location.replace('http://example.com/');
这将在浏览器历史记录中用新的URI替换当前的URI,因此后退按钮不会使用户陷入立即再次前进的页面。
如果你不想重定向,但想响应事件将用户发送到某个地方:
window.location.href = 'http://example.com/';
记得要提供非JavaScript备选方案。通常来说,链接是最好的选择,但这也要取决于具体情境。
延时重定向更加不可取。唯一使用它们的理由是想向用户展示一条消息,然而用户的阅读速度各不相同(并且他们可能同时在其他标签页中做其他事情)。如果这个消息足够重要以至于需要展示出来,那么就应该让它一直保持在屏幕上直到用户读完并点击了下一页的链接。
使用JavaScript重定向页面时,需要记住的一点是,始终提供非JavaScript重定向!可以使用链接,或者更好的是使用<META>
标签,例如:<meta http-equiv="refresh" content="2;url=http://example.com">