【问题标题】:How to remove query string from URL using href如何使用 href 从 URL 中删除查询字符串
【发布时间】:2019-11-19 16:25:16
【问题描述】:

目前,我的页面 URL 如下所示:

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

URL 有时也可能如下所示:

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

我想将用户重定向到同一页面,但没有查询字符串,以便在单击链接时将您带到:

https://example.com/eg

我尝试在this 问题中建议的锚标记中使用以下href

<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,但如果没有可能的解决方案,那将是首选。

注意:我无法将eg 硬编码到我的href 网址中,因为我正在开发一个可以放置在不同环境中的小部件,所以,@987654332 @ 可能会发生变化。

【问题讨论】:

    标签: html url


    【解决方案1】:

    ? 开头的相对链接只能修改查询字符串,因此您可以使用:

    <a href="?">Home</a>
    

    这会将您的示例 URL 定向到:

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

    它确实在最终 URL 中包含 ?,这可能不是您想要的,但如果您不想使用 Javascript,它是一个功能选项。

    【讨论】:

      【解决方案2】:

      你可以使用,

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

      您也可以使用document.location 代替window.location。但不建议这样做。 See here

      【讨论】:

        【解决方案3】:

        将此脚本应用到您的a 标记中。

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

        【讨论】:

        • 我猜这会删除查询字符串后的哈希值,这可能是不需要的。
        猜你喜欢
        • 2018-12-08
        • 2019-01-14
        • 1970-01-01
        • 1970-01-01
        • 2011-02-02
        • 1970-01-01
        相关资源
        最近更新 更多