如何使用 JavaScript 重定向?

IT技术 javascript redirect
2021-01-17 01:20:49

如何使用 JavaScript 从另一个页面重定向到一个页面?

6个回答

要重定向到另一个页面,您可以使用:

window.location = "http://www.yoururl.com";
如果需要 if else 条件重定向,你能提供一些例子吗?
2021-03-14 01:20:49
延迟几秒钟后,您如何做到这一点?
2021-03-16 01:20:49
window.location.href = " yoururl.com ";
2021-03-22 01:20:49
window.location.href = "示例"; 可能是更好的做法,因为浏览器策略可能会限制它的使用并阻止它,因为 .location 和 .location.href 并不完全相同。但是,在某些情况下,使用 .location 是理想的,特别是如果您使用 iframe 等同源策略。
2021-03-27 01:20:49
@JFA 您可以将 window.location 嵌入到超时函数中,如下所示:t1 = window.setTimeout(function(){ window.location = "http://www.yoururl.com"; },3000);其中 3000 是 3 秒。
2021-04-02 01:20:49
window.location.replace('http://sidanmor.com');

比使用更好window.location.href = 'http://sidanmor.com';

使用replace()更好,因为它不会在会话历史记录中保留原始页面,这意味着用户不会陷入永无止境的后退按钮惨败中。

如果要模拟某人单击链接,请使用 window.location.href

如果要模拟 HTTP 重定向,请使用 window.location.replace

例如:

// similar behavior as an HTTP redirect
window.location.replace("http://sidanmor.com");

// similar behavior as clicking on a link
window.location.href = "http://sidanmor.com";

取自此处: 如何在 jQuery 中重定向到另一个页面?

这个答案强调了一个重要的细节。与其说它“更好”,您应该只说明差异,并让读者选择最合适的。无论如何,感谢您的回答,这replace是我的情况:P
2021-03-17 01:20:49
这绝对是正确的答案,但应该注意,这replace()可能并不总是最佳选择。如果在 AJAX 调用完成或其他事情后重定向,则可能需要将原始页面保留在历史记录中。这真的要视情况而定!
2021-04-02 01:20:49
这个答案完全是误导!没有“更好”,尤其是没有黑体字的“更好”。使用replacehref取决于用例。我个人主要使用,href因为大多数时候我需要让用户导航回来。
2021-04-06 01:20:49

你不能重定向到一个函数。您可以做的是在重定向时在 URL 上传递一些标志,然后在服务器端代码中检查该标志,如果引发,则执行该函数。

例如:

document.location = "MyPage.php?action=DoThis";

然后在您的 PHP 代码中检查查询字符串中的“action”,如果等于“DoThis”,则执行您需要的任何函数。

请记住,这种后端行为容易受到 CSRF 攻击。如果想让它执行服务器端功能,请使用 from 或 ajax 代替,您可以在其中放置 csrf 令牌。
2021-03-12 01:20:49
@nouvist 抱歉,但我不同意。代码应该只检查if查询字符串参数“action”是否等于“DoThis”。它不在查询中使用它,也不评估它。如果有人选择做其中任何一个,我真的无法控制它
2021-03-13 01:20:49
  • 如果要模拟某人单击链接,请使用location.href.
  • 如果要模拟 HTTP 重定向,请使用location.replace.

例如:

// Similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");

// Similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";

从此答案复制到重复问题的信息

您可能需要多解释一下您的问题。

当您说“重定向”时,对于大多数建议更改 HTML 页面位置的人:

window.location = url;

当你说“重定向到功能”时 - 它真的没有意义。您可以调用函数,也可以重定向到另一个页面。
您甚至可以重定向并在新页面加载时调用一个函数。