如何使用href从URL中删除查询字符串

4

目前,我的页面URL看起来像这样:

最初的回答:

https://example.com/eg?page=2

URL有时也可以看起来像这样:

URL有时也可以看起来像这样:

https://example.com/eg/?page=2

我想要将用户重定向到相同的页面,但不带查询字符串,这样当点击链接时,将会带您到:

最初的回答:

https://example.com/eg

我尝试使用在这个问题中建议的锚标签中的以下href

Original Answer翻译成"最初的回答"

<a href=".">To home</a>

当单击链接时,如果当前页面的URL是https://example.com/eg/?page=2,则会像我想要的那样删除查询字符串。但是,如果页面URL为https://example.com/eg?page=2,它会将我带到https://example.com
问题:是否有某种目录路径(即我可以在我的href中使用的url),这样上述两个URL将始终删除查询字符串?我可以使用javascript,但如果可能的话,最好使用不带javascript的解决方案。
注意:我不能将eg硬编码到我的href url中,因为我正在开发一个小部件,它可以放置在不同的环境中,因此eg可能会更改。
3个回答

5
?开头的相对链接应该只修改查询字符串,因此你可以使用:
<a href="?">Home</a>

这将使您的示例URL指向:

https://example.com/eg?
https://example.com/eg/?

在最终URL中,它会包含?,这可能不是您想要的,但如果您不想使用JavaScript,则是一种功能选项。


4

You can use,

<a href="javascript:window.location.href=window.location.href.split('?')[0];">Home</a>

你也可以使用document.location代替window.location。但是这并不推荐。 点击此处了解更多信息。最初的回答。

2
将此脚本应用到您的a标签中。
<a href="javascript:document.location.href=document.location.href.split('?')[0];">Home</a>

1
我猜这个操作会移除查询字符串后面的哈希值,这可能不是想要的结果。 - dewd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接