在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次才能离开页面。