我一直在做一个使用hashbang (#!)方法跳过页面的项目。基本上只有一个页面,当你点击转到一个不同的页面时,你会停留在页面上,但是URL会改变,例如从index.html#home变成index.html#about,新的内容会通过AJAX/JSON加载。一切都很正常,但是如果我在浏览器中“后退”(或前进),只有URL中的页面会发生变化,但是我的jQuery不会被触发来重新加载内容。
我需要一些代码来处理所有浏览器中的后退和前进操作,这样我就可以启动函数从jQuery加载页面。我该怎么做呢?
发布于 2011-12-22 03:00:18
为什么要重新发明轮子呢?History.js是一个很棒且维护良好的jQuery插件,它支持新的HTML5 History API,当History API不受支持时,它会优雅地使用散列URL。几乎可以在所有浏览器(甚至是IE6)中运行。
发布于 2011-12-19 07:32:21
看一下hashchange事件。它会在哈希值改变时触发。但是,您应该仅在支持Internet Explorer8的情况下执行此操作。
Internet Explorer7不支持hashchange,所以你不能依赖它。至于Internet Explorer9,它(当然还有Chrome、Safari和Firefox )支持History API,而不是should be using。它使你的网址清晰,简短和语义,同时支持优雅的后退/前进按钮。
发布于 2011-12-19 07:42:55
有一个jQuery-Plugin看起来就是你想要的。
http://www.asual.com/jquery/address/
这是对questing What is the best back button jQuery plugin?投票最高的答案
https://stackoverflow.com/questions/8555664
复制相似问题