单击按钮时从 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]);