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

Ali*_*air 44 javascript browser redirect

我从来没有学过JavaScript,但我想这是一个非常简单的问题.只是想知道这些天最常见的方法.

Owe*_*wen 97

// 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";
Run Code Online (Sandbox Code Playgroud)

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


Que*_*tin 25

大多数建议?不要这样做.HTTP是远远的工作更适合比JavaScript是(搜索引擎跟随他们,如果它是永久的还是不是你可以声明,他们更快,等等).

失败了......

如果您想立即重定向:

window.location.replace('http://example.com/');
Run Code Online (Sandbox Code Playgroud)

这将使用浏览器历史记录中的新URI替换当前URI,因此后退按钮不会将用户置于立即再次向前抛出的页面上.

如果您不想真正重定向,但希望将用户发送到某个地方以响应事件:

window.location.href = 'http://example.com/';
Run Code Online (Sandbox Code Playgroud)

请记住要使用非JavaScript后备版.链接通常是最佳选择,但它确实取决于上下文.

时间延迟重定向是一个更糟糕的想法.使用它们的唯一原因是,如果您想向用户显示消息 - 并且用户以不同的速度阅读内容(并且在他们执行其他操作时让他们坐在另一个选项卡中).如果消息的重要性足以显示,那么在用户阅读并点击指向下一页的链接之前,它应该非常重要.


小智 5

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