自动将某人重定向到其他网页的最佳方法是什么?

时间:2008-10-14 08:06:21

标签: javascript browser redirect

我从未学习过JavaScript,但我认为这是一个非常简单的问题。只是想知道这些天最常见的方法。

7 个答案:

答案 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>