[英]Replace the parameter in URL & refresh the page
我的默认网址就像
http://localhost:4444/index.html?file=sample
我有一个包含各种文件名的下拉列表,我想通过单击下拉列表来替换参数sample
。
对于每个更改,应使用现有参数更改URL。
我试着跟着,
location.href = location.href + "filename" ;
但它不会取代文件名。
你可以试试这个:
location.search = location.search.replace(/file=[^&$]*/i, 'file=filename');
location.search
属性仅包含URL的查询部分,因此您不必担心URL的任何其他部分(例如域或哈希)将被修改。
此外,正则表达式将仅替换file
参数。 当您在查询中有其他参数时,它很有用。
一种方法是:
location.href = location.origin + location.pathname + '?file=filename';
但这只会在你有一个参数之后才有效?
。 如果你有更多 - 你需要解析它们并重新申请。
欢迎来到2018年,您现在可以大都使用URLSearchParams处理解析和更换你
var params = new URLSearchParams(location.search);
params.set('file', 'sample');
window.location.search = params.toString();
URLSearchParams将根据需要将参数替换或添加到查询字符串。
当window.location.search
中没有现有的params时,我调整了@matewka的答案,使其更加健壮
var filename = 'myFilename.csv';
var paramName = 'file';
var newParam = paramName + '=' + filename;
if(window.location.search){
var regex = new RegExp(paramName + '=[^&$]*', 'i');
window.location.search = window.location.search.replace(regex, newParam);
}else{
window.location.search = newParam;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.