在没有清理其他参数的情况下在 url 中传递参数使用 js

我使用 Paginator django,当我点击页面按钮时。url 更改为:/admin/orders/?page=2 现在我想在 url 参数 中设置状态/admin/orders/?status=1,如下所示: 。有用!但在这种情况下,当我更改页面时,状态参数被清除!我想像这样在 url 中设置两个参数: /admin/orders/?status=1&page=2 我怎样才能用 js 解决这个问题并获得像上面那样干净的 url?这是我的想法,但不起作用:


        $(document).ready(function(){

           $("#status-filter").click(function(){

              

               var s = $("#status-value").val();

               if(window.location.href.indexOf("?") > -1)

                    window.location.href = window.location.href+"&status="+s;

                else

                    window.location.href = window.location.href+"?status="+s;

           })

        });


一只甜甜圈
浏览 77回答 1
1回答

蝴蝶刀刀

我找到了!我应该这个代码:function getParameter(name,href){    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");    var regexS = "[\\?&]"+name+"=([^&#]*)";    var regex = new RegExp( regexS );    var results = regex.exec( href );    if( results == null )        return "";    else        return decodeURIComponent(results[1].replace(/\+/g, " "));    }function setUrlParameter(name,value){    var url = window.location;    var href = url.href;    var search = url.search;    var val = getParameter(name,href);    if(val != ''){        var param = name+'='+val;        var new_param = name+'='+value;        var newUrl = href.replace(param,new_param);        window.history.pushState("string", "Title", newUrl);        return false;     }     else if(search == ''){        var param = '?'+name+'='+value;        var newUrl = href+param;        window.history.pushState("string", "Title", newUrl);        return false;     }     else if(search != ''){        var param = '&'+name+'='+value;        var newUrl = href+param;        window.history.pushState("string", "Title", newUrl);        return false;     }}    console.log(setUrlParameter("status","1"));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript