history.js重新加载后退按钮上的页面

时间:2013-10-07 06:34:54

标签: php jquery html5 history.js html5-history

我是html5和history.js的新手,仍然试图掌握history.js的概念。这里有两个问题。

  1. 是history.js,用于更改地址栏中的URL而不刷新页面? (比如使用哈希来操纵网址)

  2. 我使用history.js(here is my fiddle)完成了一个简单的代码

  3. 第一页的网址是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?什么是最佳做法?

1 个答案:

答案 0 :(得分:0)

  1. 是的,它允许您保存当前状态信息(如果需要),并将当前网址推送到历史记录中并将新网址加载到网址栏中。它不会重新加载页面。假设您正在使用与URL中的更改相对应的客户端上的javascript(AJAX调用或其他一些代码运行)执行某些操作。

  2. 您的浏览器的后退按钮和history.js不会撤消您已完成的任何JavaScript代码。您应该使用AJAX重新加载该先前URL的页面,该页面应该读取隐藏按钮。所以这是一个细微的差别 - 按下后退按钮不会取消隐藏按钮,而是会从原始代码重新创建按钮,这是从另一个AJAX调用中获得的。

  3. <强>更新

    您可以将处理程序绑定到window.onpopstate事件。

    window.onpopstate = function(event) {
      // your code...
    }