重定向到 JavaScript 中的相对 URL
Posted
技术标签:
【中文标题】重定向到 JavaScript 中的相对 URL【英文标题】:Redirecting to a relative URL in JavaScript 【发布时间】:2010-12-11 22:07:19 【问题描述】:我有一个问题: 我想通过 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
但是想拥有这个:
example.com/path/
我该怎么做?
【问题讨论】:
【参考方案1】:你可以做一个相对重定向:
window.location.href = '../'; //one level up
或
window.location.href = '/path'; //relative to domain
【讨论】:
看看为什么你应该使用window.location.replace
***.com/questions/503093/…
当你想模拟一个链接时,你应该使用window.location.href
。当你想模拟一个 http 重定向(因此不生成历史项目)时,你应该只使用window.location.replace
。
顺便说一下,document.location
是作为只读属性的。使用window.location
更安全。见this question。
我发现使用window.location.href = '../'
重定向到站点的根目录,而不是像预期的那样“向上一级”。当当前页面是“www.example.com/customers/list”时,我需要使用'./'
。我猜这是因为“列表”不被视为目录级别。
@MarcusCunningham,在您的示例中,目录是 /customers/ - 所以“上一级”是 www.example.com/。现在,如果您的示例 URL 是 www.example.com/customers/list/ - 它会将您重定向到 www.example.com/customers/【参考方案2】:
如果您使用location.hostname
,您将获得您的 domain.com 部分。然后location.pathname
会给你/path/folder。我会用 / 拆分 location.pathname
并重新组合 URL。但除非您需要查询字符串,否则您可以重定向到 ..
以转到上面的目录。
【讨论】:
当我转到 location.path 时,我的浏览器会狂吠,它似乎只能识别 location.pathname。提示? location.path 不正确,应该是 location.hostname。我已经在帖子中添加了一个编辑来解决这个问题。【参考方案3】:https://developer.mozilla.org/en-US/docs/Web/API/Location/assign
window.location.assign("../");
// 上一级
window.location.assign("/path");
// 相对于域
【讨论】:
【参考方案4】:重定向到../
【讨论】:
如果您的应用托管在 sub-uri 中并且应用不知道 sub-uri 路径。如果你在你的应用程序根目录并且你做了 ../ 应用程序将不知道如何回到它的根目录。例如,同一应用托管在example.com/myapp 和other.example.com/app2【参考方案5】:<a href="..">no JS needed</a>
..
表示父目录。
【讨论】:
这需要点击或其他一些用户启动的导航。【参考方案6】:我正在尝试使用 JavaScript 将我当前的网站重定向到同一页面上的其他部分。以下代码对我有用:
location.href='/otherSection'
【讨论】:
【参考方案7】:试试下面的js代码
location = '..'
【讨论】:
以上是关于重定向到 JavaScript 中的相对 URL的主要内容,如果未能解决你的问题,请参考以下文章
重定向到外部 Javascript 函数中的 URL 不起作用