【发布时间】:2017-05-10 17:32:54
【问题描述】:
This question 有点像我在想的,但没有答案。
我已使用以下代码在我的应用程序中成功实现哈希导航:
$(window).on('hashchange', function () {
loadContent(location.hash.slice(1));
}).trigger('hashchange');
我使用此事件通过 Ajax 从服务器下载部分 HTML 内容,当浏览器检测到地址栏中的哈希值发生更改时,它会被调用。地址如下所示:
https://www.mywebsite.com/#/account/login
问题是,当链接相同时,它不会触发 hashchange 事件(原因很明显)。我需要调用函数loadContent来刷新页面。
例如,在我实现哈希导航之前,如果用户想放弃他对页面所做的所有更改,他只需单击系统菜单中的相同链接,或者单击地址栏并回车。然后,浏览器将重定向到同一页面并删除所有更改。
但现在,我无法检测到这一点。我可以做些什么来检测这些命令并调用我的loadContent(location.hash.slice(1)); 函数?
【问题讨论】:
标签: javascript jquery html ajax browser