我一直在寻找JQuery库的URL哈希,但没有找到好的。有“历史插件”,但我们都知道它有缺陷并且不灵活。
我正在div中加载我的页面。我需要一种方法来进行后退/前进以及网址散列。
mydomain.com/#home
mydomain.com/#aboutus
mydomain.com/#register
什么是可以处理所有这些问题的最佳库?
答案 0 :(得分:25)
我最近查看了3个不同的插件 - jquery history plugin,history和jQuery BBQ。
他们都很难设置,我确实让jQuery.history工作,但它仍然有IE7的问题。所以我改为BBQ,它在所有目标浏览器(IE6,IE7,IE8,Fx3)上运行良好。
所以我推荐使用jQuery BBQ插件。
编辑:here's a blog post我刚刚写过,它演示了带有级联下拉菜单的jQuery BBQ。
答案 1 :(得分:1)
你试过jQuery地址吗?来自Asual,制作SWFAdress的人。 Asual - jquery Address
jQuery Address插件提供强大的深层链接功能,允许创建可指向网站部分或应用程序状态的唯一虚拟地址。
答案 2 :(得分:1)
History.js 已得到充分记录/维护,并支持所有浏览器。
https://github.com/browserstate/history.js
来自网站:
History.js优雅地支持HTML5历史/状态API (pushState,replaceState,onPopState)在所有浏览器中。包含 继续支持数据,标题,replaceState。支持jQuery, MooTools和Prototype。对于HTML5浏览器,这意味着您可以 直接修改URL,无需再使用哈希。对于 HTML4浏览器它将恢复使用旧的onhashchange 功能。
答案 3 :(得分:0)
我对reallysimplehistory(新的dhtml历史)表示祝福。它不是特定于jQuery的,但它适用于IE,firefox和webkit,并且不需要太多设置。
答案 4 :(得分:0)
也许尝试这个jQuery History插件:https://github.com/balupton/jquery-history/它提供跨浏览器支持,绑定到哈希,重载哈希,其余所有。
还有一个Ajax扩展,允许它轻松地将您的网页升级为正确的Ajax应用程序:https://github.com/balupton/jquery-ajaxy/
总体而言,它有详细记录,支持和功能丰富。它也在这里赢得了一个赏金问题How to show Ajax requests in URL?
或者,如果您想使用HTML5历史记录API,则可以:https://github.com/browserstate/history.js
答案 5 :(得分:-4)
AFAIK,所有历史插件都做同样的事情:
setInterval(function() {
if(theHashChanged) {
someFunction(oldHash,newHash);
}
}, 500/*whatever*/);
这是它的核心(减去浏览器黑客,无需点击链接即可添加历史记录条目等)。它总是会出错,因为它有点像黑客,而且没有用于处理历史变化的跨浏览器API。
最重要的是,用户体验这种东西并不是很好。用户不知道何时必须单击后退按钮4次才能离开页面。