我从未学习过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 更适合工作(搜索引擎跟随它们,你可以说明它是否是永久的,它们更快,等等。)

失败<!>#8230;

如果您想立即重定向:

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">

现在,我认为最值得推荐的方法是不要使用javascript (或meta)重定向。你真的需要它吗?您可以使用重定向HTTP标头吗?

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

使用本地文件执行此操作的另一种方法是执行此操作

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

<!-- 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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top