在JQuery中执行URL哈希/历史记录的最佳库是什么?

我一直在寻找JQuery库的URL哈希,但发现没有什么是好的。 有“历史插件”,但我们都知道它有缺陷并且不灵活。

我在div中加载我的页面。 我需要一种方法来进行后退/前进以及url散列。

mydomain.com/#home mydomain.com/#aboutus mydomain.com/#register 

什么是最好的图书馆可以处理所有这些?

我最近看了3个不同的插件–jquery历史插件 , 历史和jQuery BBQ 。

他们都很难设置,我确实让jQuery.history工作,但它仍然有IE7的问题。 所以我改为BBQ,它在所有目标浏览器(IE6,IE7,IE8,Fx3)上运行良好。

所以我推荐jQuery BBQ插件。

编辑: 这是我刚刚写的一篇博文 ,演示了带有级联下拉菜单的jQuery BBQ。

你试过jQuery地址吗? 来自Asual,制作SWF地址的人。 Asual – jquery地址

jQuery Address插件提供强大的深层链接function,允许创建可指向网站部分或应用程序状态的唯一虚拟地址。

History.js有很好的文档/维护,并支持所有浏览器。

https://github.com/browserstate/history.js

从网站:

History.js在所有浏览器中优雅地支持HTML5历史/状态API(pushState,replaceState,onPopState)。 包括对数据,标题,replaceState的持续支持。 支持jQuery,MooTools和Prototype。 对于HTML5浏览器,这意味着您可以直接修改URL,而无需再使用哈希。 对于HTML4浏览器,它将恢复使用旧的onhashchangefunction。

我非常喜欢真正的历史 (nee dhtmlHistory)。 它不是特定于jQuery,但它适用于IE,firefox和webkit,并且不需要太多设置。

也许尝试这个jQuery History插件: https : //github.com/balupton/jquery-history/它提供跨浏览器支持,绑定到哈希,重载哈希,其余所有。

它还有一个Ajax扩展,允许它轻松地将您的网页升级为适当的Ajax应用程序: https : //github.com/balupton/jquery-ajaxy/

总的来说,它有很好的记录,支持和function丰富。 它还赢得了一个赏金问题如何在URL中显示Ajax请求?

或者,如果您想使用HTML5 History API,请访问: https : //github.com/browserstate/history.js

AFAIK,所有历史插件都做同样的事情:

 setInterval(function() { if(theHashChanged) { someFunction(oldHash,newHash); } }, 500/*whatever*/); 

这是它的核心(减去浏览器黑客添加历史条目而不点击链接等)。 它总是会出错,因为它有点像黑客,并且没有用于处理历史变化的跨浏览器API。

最重要的是,用户体验这种东西并不是很好。 用户不知道何时必须单击后退按钮4次才能离开页面。