Javascript 使用js修改URL参数的最佳方法
我试图修改URL参数,但找不到完美的方法 首先,我尝试了:Javascript 使用js修改URL参数的最佳方法,javascript,jquery,url-modification,Javascript,Jquery,Url Modification,我试图修改URL参数,但找不到完美的方法 首先,我尝试了: window.location.href = window.location.href + '?test'; window.location.href = String( window.location.href ).replace( "?test", "" ); 问题是,页面会重新加载,而只是添加到url中 然后我试着: window.location.href = window.location.href + '?test';
window.location.href = window.location.href + '?test';
window.location.href = String( window.location.href ).replace( "?test", "" );
问题是,页面会重新加载,而只是添加到url中
然后我试着:
window.location.href = window.location.href + '?test';
window.location.href = String( window.location.href ).replace( "?test", "" );
这很好用,我想替换的部分被替换/删除,但是页面每次都会重新加载
然后我读到:
window.history.pushState( {} , 'test', '?test' );
但不知怎的,这不管用
我的目标是在单击按钮控制功能时添加和替换/删除URL字符串
例如。
网址是
例如,这显示了基于这些URL参数的覆盖和提示工具提示。
当用户关闭覆盖时,“showoverlay”部分应在不重新加载页面的情况下删除。因此,URL是:
您是否尝试过使用replaceState?它在不重新加载页面的情况下替换历史记录,并且可能适合您的用例
window.history.replaceState(data, title [, url ] );
如果需要保留url的其他部分,请确保将其存储在单独的变量中,并将其附加回url
这大致是您获取URL每个部分的方式:
let url = window.location.origin + window.location.pathname + window.location.search
然后你只要把它加回去
window.history.replaceState({}, '', url + '&yourNewParameters=value')
是的,我试过了,但由于我的开发技能不高,存储url的其他部分太复杂了。没有更简单的方法了吗?请检查我的更新答案,我包括了一个例子谢谢你的帮助。问题是,我不知道url的其他字符串。所以我不能用固定字符串替换它。我需要切断“showoverlay”,但“showhint”仍应保留在url中。但也可能是,“showhint”以前被删除了。因此,我正在寻找搜索,如果有,请更换此部分,但保留其余部分:因此,您必须使用let searchStr=window.location.search单独存储您的搜索字符串,然后使用searchStr.indexOf('showoverlay')检查是否有showoverlay,然后您只需使用searchStr.replace('showoverlay','something other')即可。我知道这有点冒失,但您能为我提供一个简单的jsfiddle,在单击的地方,一个参数被添加,在关闭的时候,它被删除,所以我可以试着去理解——因为我不是这样理解的。但这听起来正是我想要的。