我一直在搜索几个小时,试图进行简单的浏览器历史记录操作。
我有几个菜单链接,并将单击处理程序绑定到它们。链接的href只是散列:href="#Home"
或href="#About"
。
当用户单击链接时,我想显示一个子页面,而无需重新加载页面和更改浏览器URL。
我也用pushState()尝试了这个基本示例,但是它不起作用:http ://jsbin.com/wecubizovu/1/edit?html,js,console
当我在Chrome中运行此代码时,我希望如果用户单击链接,他将在URL后面附加#asd,而popstate不会发生变化。为什么会触发popstate?如何做到这一点,以便当用户单击链接时,将哈希附加到浏览器URL,当用户单击浏览器后退按钮时,我捕获该事件并显示所需的页面?
谢谢!
你的a
元素具有href
的''
,如果你不阻止默认动作仍在执行它,这在某种程度上打乱了你想做的事。将功能更改为
$("#asd").click(function(e) {
e.preventDefault();
alert("jo");
window.history.pushState("", document.title, "#asd");
});
实现您想要的。
编辑:链接:http : //jsbin.com/sosozeteti
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句