更改浏览器 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 上实际加载任何内容的主要内容,如果未能解决你的问题,请参考以下文章