我从未学习过JavaScript,但我认为这是一个非常简单的问题。只是想知道这些天最常见的方法。
答案 0 :(得分:92)
// 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,我在这里巩固了他的答案。
答案 1 :(得分:25)
最值得建议的?不要这样做。 HTTP is far better suited to the job比JavaScript更快(搜索引擎跟随它们,您可以说明它是否是永久性的,它们更快,等等。)
失败了......
如果您想立即重定向:
window.location.replace('http://example.com/');
这将使用浏览器历史记录中的新URI替换当前URI,因此后退按钮不会将用户置于会立即再次向前抛出的页面上。
如果您不想真正重定向,但希望将用户发送到某个地方以响应某个事件:
window.location.href = 'http://example.com/';
请记住要有非JavaScript后备版。链接通常是最佳选择,但它确实取决于上下文。
时间延迟重定向是一个更糟糕的想法。使用它们的唯一原因是,如果您想向用户显示消息 - 并且用户以不同的速度阅读内容(并且在他们执行其他操作时让他们坐在另一个选项卡中)。如果消息的重要性足以显示,那么重要的是留在屏幕上直到用户阅读并点击指向下一页的链接。
答案 2 :(得分:5)
使用JavaScript重定向页面时要记住的一件重要事情是,始终提供非JavaScript重定向!链接可以做或更好<META>
标记,例如:<meta http-equiv="refresh" content="2;url=http://example.com">
答案 3 :(得分:4)
现在,我认为最常用的方法是not to do javascript(或元)重定向。你真的需要它吗?您可以使用重定向HTTP标头吗?
W3C的Web内容可访问性指南(7.4)也不鼓励创建自动刷新页面,因为大多数Web浏览器不允许用户禁用或控制刷新率
答案 4 :(得分:0)
处理本地文件的另一种方法是
答案 5 :(得分:-1)
<script type="text/javascript">
function Redirect(){
window.location.href = ("https://example.com");
}
document.write("Please wait you will be redirected in 10sec");
setTimeout('Redirect(), 10000);
</script>
答案 6 :(得分:-1)
<!-- begin snippet: js hide: false console: true babel: false -->
<script type="text/javascript">
function Redirect(){
window.location.href = ("https://example.com");
}
document.write("Please wait you will be redirected in 10sec");
setTimeout('Redirect(), 10000);
</script>