我一直在使用hashbang(#!
)方法来跳过页面。基本上只有1页,当你点击进入不同的页面时,你留在页面上,但URL改变,例如从index.html#home
到index.html#about
,新内容通过AJAX / JSON加载。一切正常,但如果我在浏览器中“返回”(或转发),只有URL中的页面发生变化,但我的jQuery不会被重新加载内容。
我需要的是一些代码,它将处理所有浏览器中的后退和前进动作,以便我可以触发该函数从jQuery加载页面。我该怎么做?
答案 0 :(得分:4)
为什么重新发明轮子? History.js是一个伟大的&维护良好的jQuery插件,支持新的HTML5 History API,并且当不支持History API时,可以优雅地使用哈希URL。适用于几乎所有浏览器(甚至是IE 6)。
答案 1 :(得分:1)
查看hashchange
事件。它在哈希值发生变化时触发。 但是,您应该只为Internet Explorer 8支持执行此操作。
Internet Explorer 7不支持hashchange
,因此您无法依赖它。至于Internet Explorer 9,它(当然还有Chrome,Safari和Firefox)支持History API,而should be using代替{{3}}。它可以保持您的网址清晰,简洁和语义,同时支持优雅的后退/前进按钮支持。
答案 2 :(得分:1)
有一个jQuery-Plugin似乎正在做你想要的。
的最高投票答案