【问题标题】:Add parameters to url without refresh向url添加参数而不刷新
【发布时间】:2017-11-25 19:45:15
【问题描述】:

我想在不刷新页面的情况下向 url 添加参数。我用过history.pushStatehistory.replaceState。我在javascript中的函数上放了一个调试器,当我调试history.pushState时,它替换了url,但随后又变成了以前的。

我想要的是,例如以下是我的网址

.../?id=1

现在我将点击我的过滤器之一,网址必须如下

.../?id=1,2

然后我会点击Search 按钮来应用过滤器。最佳做法应该是什么?

【问题讨论】:

  • 你能发布一个带有相关代码的sn-p吗?
  • 最佳实践是不要试图让浏览器做一些它设计不做的事情。单击搜索按钮时更改 URL。

标签: javascript jquery


【解决方案1】:

在应用过滤器之前最好不要更改 URL。 将过滤器参数保存在某个对象中,并在用户单击提交后更改 URL

【讨论】:

  • 这应该是一条评论。
【解决方案2】:

这是一个很好的例子:

https://css-tricks.com/snippets/javascript/get-url-and-url-parts-in-javascript/

您可以在过滤器命令中使用:onchange, onclick 等,以便即时修改 URL

【讨论】:

    【解决方案3】:

    您可以使用以下代码添加参数而无需刷新:

    window.history.replaceState(null, null, "?param1=value");
    

    【讨论】:

      猜你喜欢
      • 2015-12-26
      • 2021-10-23
      • 1970-01-01
      • 2022-12-28
      • 2019-04-30
      • 2020-07-30
      • 2020-03-06
      相关资源
      最近更新 更多