Javascript 从查询字符串中删除参数而不重新加载

Javascript 从查询字符串中删除参数而不重新加载,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,是否可以用js从查询字符串中删除参数,我已经尝试了下面的一个,不幸的是它在浏览器控制台中工作,而不是在js文件中 var clean_uri = location.protocol + "//" + location.host+location.pathname; window.history.replaceState({}, document.title, clean_uri); 最好的方法是什么 这只在浏览器中起作用的原因是window.history API仅在浏览器中可

是否可以用js从查询字符串中删除参数,我已经尝试了下面的一个,不幸的是它在浏览器控制台中工作,而不是在js文件中

 var clean_uri = location.protocol + "//" +       location.host+location.pathname;
 window.history.replaceState({}, document.title, clean_uri);

最好的方法是什么

这只在浏览器中起作用的原因是window.history API仅在浏览器中可用。我不太清楚你所说的“来自文件”是什么意思。但正如一位评论者指出的那样,问题在于执行的环境。例如,如果在节点环境而不是浏览器中执行此操作,则不存在window.history api。节点甚至没有窗口对象


由于您添加了AngularJs标志,可能是应用程序内的路由正在侦听URL的更改,并将对其进行操作。Angular可能有自己的方式允许您更改URL,但我不太熟悉,无法提供帮助。

如果它在控制台中工作,但在您的JS中不工作,那么问题可能与您与我们共享的代码有关。“不在JS文件中”是什么意思--您正在从页面调用的是外部JS文件吗?