在 JavaScript 中重定向到相对 URL

IT技术 javascript url redirect
2021-02-28 22:53:04

我有一个问题:我想通过 JavaScript 重定向到上面的目录。我的代码:

location.href = (location.href).substr(0, (location.href).lastIndexOf('folder'));

网址如下所示:

example.com/path/folder/index.php?file=abc&test=123&lol=cool

重定向仅影响以下内容:

example.com/path/&test=123&lol=cool

但是想要这个:

例子.com/path/

我怎么能那样做?

6个回答

您可以进行相对重定向:

window.location.href = '../'; //one level up

或者

window.location.href = '/path'; //relative to domain
我发现 usingwindow.location.href = '../'重定向到站点的根目录,而不是预期的“上一级”。当当前页面是“www.example.com/customers/list”时,我需要使用'./'. 我想这是因为“列表”不被视为目录级别。
2021-04-19 22:53:04
看看为什么你应该使用window.location.replace stackoverflow.com/questions/503093/...
2021-04-29 22:53:04
@MarcusCunningham,在您的示例中,目录是 /customers/ - 所以“上一级”是 www.example.com/。现在,如果您的示例 URL 是 www.example.com/customers/list/ - 它会将您重定向到 www.example.com/customers/
2021-05-01 22:53:04
当你想模拟一个链接时,你应该使用window.location.href. 您应该只window.location.replace在要模拟 http 重定向时使用(因此不生成历史记录项)。
2021-05-03 22:53:04
顺便说一句,document.location旨在作为只读属性。使用更安全window.location看到这个问题
2021-05-13 22:53:04

如果您使用,location.hostname您将获得您的 domain.com 部分。然后location.pathname会给你/路径/文件夹。我会location.pathname按 /拆分并重新组合 URL。但是除非您需要查询字符串,否则您可以重定向到..上面的目录。

location.path 不正确,应该是location.hostname。我在帖子中添加了一个编辑来解决这个问题。
2021-04-17 22:53:04
当我转到location.path时,我的浏览器会吠叫,它似乎只能识别location.pathname提示?
2021-05-02 22:53:04

https://developer.mozilla.org/en-US/docs/Web/API/Location/assign

  • window.location.assign("../"); // 上一级
  • window.location.assign("/path"); // 相对于域

重定向到 ../

如果您的应用托管在子 uri 中并且应用不知道子 uri 路径。如果你在你的应用程序根目录下并且你做了 ../ 应用程序将不知道如何回到它的根目录。例如,同一应用托管在example.com/myappother.example.com/app2
2021-04-15 22:53:04

<a href="..">no JS needed</a>

.. 表示父目录。

这需要单击或其他一些用户启动的导航。
2021-05-02 22:53:04