使用JS或jQuery更改或更新浏览器地址栏中查询字符串的可见部分

Change or update the visible part of query string in the browser address bar using JS or jQuery?

本文关键字:字符串 查询 见部 浏览器 jQuery JS 使用 更新 地址栏      更新时间:2023-09-26

我想知道有没有任何解决方案可以通过JavaScript或Jquery点击一些复选框,用一些新值更改或更新URL的查询字符串部分(在浏览器的地址栏中可见)。我想在没有任何jQuery插件的情况下做到这一点。

当用户单击组中的任何复选框时,将根据用户选择的复选框值从数据库中提取数据。同时,URL的查询字符串也将更改为新的更新值。请注意,在整个过程中永远不会重新加载页面。当复选框被选中时,我们可以运行AJAX。我们如何才能做到这一点?我们将非常感谢您的演示。

是的,这是一件非常常见的事情。window.replaceState是您要查找的函数。或者,如果您希望允许用户将back转到复选框的前一状态,也可以使用pushState,但这是更多的工作,并不总是期望的。

再说一遍,您实际上需要一些东西来将一个URL更改为另一个URL。将URL操作为字符串会适得其反,因此您可以使用URI.js.

这样的库

使用窗口。history类似:

window.history.pushState('page2', 'Title', '/new-uri');

对于您的案例,您将有两个嵌套函数:包含AJAX调用的Event Listener+此AJAX调用的回调:

 $('[input]').change(function(){
       if(this.checked){
           //AJAX
           $.get("URL",{},function(data){
                 //AJAX - Callback
                 window.history.pushState('page2', data.title, data.url);
             });
      }
});