更改浏览器 URL 而无需在 UI 上实际加载任何内容

Posted

技术标签:

【中文标题】更改浏览器 URL 而无需在 UI 上实际加载任何内容【英文标题】:Change Browser URL without actually loading anything on the UI 【发布时间】:2017-12-12 22:05:56 【问题描述】:

我已经看到很多与此相关的问题,实际上用户想要更改 URL(我想更改哈希)而不重新加载页面。但就我而言,它们似乎都不起作用。

首先是我的要求: 用户在 UI 上选择一些过滤器,数据会自动刷新。我希望我的 URL Hash 随之更改,而无需重新加载 UI 的任何内容。

我尝试了 Stack Overflow 上可用的以下选项:

    将文档哈希更改为新的哈希 URL:

document.location.hash = new_hash_value;

    操纵浏览器历史记录:

    window.history.replaceState('test', 'title' , new_url);

但在这两种情况下,页面实际上会重新加载(尽管它不会重新加载数据),因此对于下拉过滤器中的每个选择,它都会关闭过滤器选项。

任何人都可以在这里帮助我,我如何欺骗浏览器仅更改 URL 而无需这样做。

(NS:Itried 传递参数重新加载:true,但这似乎也不起作用。)

【问题讨论】:

为什么 AngularJS 被标记在这里? 因为问题出在 angularJs 上。我的整个应用都在 Angularjs 中 【参考方案1】:

这在我相信之前已经得到了回答。

window.history.pushState("object or string", "PageTitle", "/url");

更多检查:https://developer.mozilla.org/en-US/docs/Web/API/History_API

【讨论】:

我已经尝试过这个选项,但是它似乎在加载一些元素并且它关闭了 fitler 下拉菜单 检查这是否有帮助 ***.com/questions/22914228/…

以上是关于更改浏览器 URL 而无需在 UI 上实际加载任何内容的主要内容,如果未能解决你的问题,请参考以下文章

更改 url 并更新页面内容而无需重新加载

无需在 Android Studio 中打开浏览器即可点击 URL

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

根据无需重新加载页面加载的 URL 隐藏/显示 div

每秒异步更新 UI,无需从服务器刷新页面

重新加载Spring Boot 上的更改,而无需重新启动服务