在浏览器中捕获“返回”事件并加载不同的内容

时间:2011-12-18 23:25:45

标签: javascript jquery ajax hashbang

我一直在使用hashbang(#!)方法来跳过页面。基本上只有1页,当你点击进入不同的页面时,你留在页面上,但URL改变,例如从index.html#homeindex.html#about,新内容通过AJAX / JSON加载。一切正常,但如果我在浏览器中“返回”(或转发),只有URL中的页面发生变化,但我的jQuery不会被重新加载内容。

我需要的是一些代码,它将处理所有浏览器中的后退和前进动作,以便我可以触发该函数从jQuery加载页面。我该怎么做?

3 个答案:

答案 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似乎正在做你想要的。

http://www.asual.com/jquery/address/

这是任务What is the best back button jQuery plugin?

的最高投票答案