单击按钮时从 URL 中删除查询参数不起作用
Remove query param from URL on button click not working
我想在单击按钮时删除 URL 中的查询参数,这样 link 将从 www.example.com/?queryparam=hello
修改为 www.example.com/
。
当我尝试时:
window.location.href.split('?')[0];
在控制台中,returns href 减去查询参数(正确)。但在实际的浏览器测试中,它不会在实际按钮点击时执行代码。
这是我的代码:
window.addEventListener('message', function(event) {
if (window.location.href.indexOf('?queryParam=') > -1) {
$('.button').click(function() {
window.location.href.split('?')[0];
});
}
return;
}, false);
拆分和访问数组不会改变原始字符串。您在控制台中看到它作为基础 URL 的原因是因为它的计算结果为 www.example.com
但您没有更改原始 window.location.href
。重新分配它:
window.location.href = window.location.href.split('?')[0];
您的代码:
window.location.href.split('?')[0];
只是一个表达。它评估为一个值,它基本上没有任何影响。重新分配将按预期更改位置。请注意,不需要 window
(除非您有一个名为 location
的局部变量)。您也可以将其缩短为:
location = location.href.split('?')[0];
甚至:
location.assign(location.href.split('?')[0]);
我想在单击按钮时删除 URL 中的查询参数,这样 link 将从 www.example.com/?queryparam=hello
修改为 www.example.com/
。
当我尝试时:
window.location.href.split('?')[0];
在控制台中,returns href 减去查询参数(正确)。但在实际的浏览器测试中,它不会在实际按钮点击时执行代码。
这是我的代码:
window.addEventListener('message', function(event) {
if (window.location.href.indexOf('?queryParam=') > -1) {
$('.button').click(function() {
window.location.href.split('?')[0];
});
}
return;
}, false);
拆分和访问数组不会改变原始字符串。您在控制台中看到它作为基础 URL 的原因是因为它的计算结果为 www.example.com
但您没有更改原始 window.location.href
。重新分配它:
window.location.href = window.location.href.split('?')[0];
您的代码:
window.location.href.split('?')[0];
只是一个表达。它评估为一个值,它基本上没有任何影响。重新分配将按预期更改位置。请注意,不需要 window
(除非您有一个名为 location
的局部变量)。您也可以将其缩短为:
location = location.href.split('?')[0];
甚至:
location.assign(location.href.split('?')[0]);