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

时间:2010-03-01 20:39:44

标签: javascript jquery ajax fragment-identifier hashchange

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

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

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

什么是可以处理所有这些问题的最佳库?

6 个答案:

答案 0 :(得分:25)

我最近查看了3个不同的插件 - jquery history pluginhistoryjQuery 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次才能离开页面。