我是html5和history.js的新手,仍然试图掌握history.js的概念。这里有两个问题。
是history.js,用于更改地址栏中的URL而不刷新页面? (比如使用哈希来操纵网址)
我使用history.js(here is my fiddle)完成了一个简单的代码
第一页的网址是http://mysite.com?id=1,2,3
当按下其中一个按钮时,JS代码隐藏按钮,它将从网址中删除ID并使用history.js更改地址栏中的网址
<input type="button" value="delete id 1" data-remove-id="1" class="remove" />
<input type="button" value="delete id 2" data-remove-id="2" class="remove" />
<input type="button" value="delete id 3" data-remove-id="3" class="remove" />
问题是,当我点击后退按钮时,网址会正确更改,但如何让它取消隐藏隐藏按钮?或者如何刷新页面?还是我用ajax?什么是最佳做法?
答案 0 :(得分:0)
是的,它允许您保存当前状态信息(如果需要),并将当前网址推送到历史记录中并将新网址加载到网址栏中。它不会重新加载页面。假设您正在使用与URL中的更改相对应的客户端上的javascript(AJAX调用或其他一些代码运行)执行某些操作。
您的浏览器的后退按钮和history.js不会撤消您已完成的任何JavaScript代码。您应该使用AJAX重新加载该先前URL的页面,该页面应该读取隐藏按钮。所以这是一个细微的差别 - 按下后退按钮不会取消隐藏按钮,而是会从原始代码重新创建按钮,这是从另一个AJAX调用中获得的。
<强>更新强>
您可以将处理程序绑定到window.onpopstate事件。
window.onpopstate = function(event) {
// your code...
}