Avatar ·

如何在不重新加载页面的情况下更改地址栏中的URL?

大家好!我是一名初级前端开发者,遇到了这样一个任务:当用户点击网站内的链接时,需要更改浏览器地址栏中的URL,但页面不应重新加载。 例如,我有一个单页应用(SPA),其中包含文章列表。当用户点击文章标题时,我希望URL从`/`变为`/article/123`,但内容通过AJAX加载,无需完全重新加载。目前我使用带有`href`的普通链接,浏览器会直接重新加载页面。我尝试过使用`window.location.href = '/article/123'`,但这也会导致重新加载。 以下是我当前代码的示例: ```javascript // 这无法按预期工作 document.querySelector('.article-link').addEventListener('click', function(e) { e.preventDefault(); window.location.href = '/article/123'; // 仍然重新加载页面 // 通过fetch加载内容... }); ``` 如何在不重新加载的情况下正确更改URL?