我一直在寻找 URL 哈希的 JQuery 库,但没有找到好的。有“历史插件”,但我们都知道它有问题并且不灵活。
我正在将我的页面加载到一个 div 中。我需要一种方法来进行反向/转发以及 url 散列。
mydomain.com/#home
mydomain.com/#aboutus
mydomain.com/#register
可以处理所有这些的最好的库是什么?
我一直在寻找 URL 哈希的 JQuery 库,但没有找到好的。有“历史插件”,但我们都知道它有问题并且不灵活。
我正在将我的页面加载到一个 div 中。我需要一种方法来进行反向/转发以及 url 散列。
mydomain.com/#home
mydomain.com/#aboutus
mydomain.com/#register
可以处理所有这些的最好的库是什么?
我最近查看了 3 个不同的插件 - jquery history plugin、history和jQuery BBQ。
它们都很难设置,我确实让 jQuery.history 工作,但它仍然有 IE7 的问题。所以我改用 BBQ,它在我们所有的目标浏览器(IE6、IE7、IE8、Fx3)上运行良好。
所以我推荐jQuery BBQ插件。
编辑:这是我刚刚写的一篇博客文章,它演示了带有级联下拉菜单的 jQuery BBQ。
你试过 jQuery 地址吗?来自 Asual,制作 SWFAdress 的人。Asual - jquery 地址
jQuery Address 插件提供强大的深度链接功能,并允许创建可以指向网站部分或应用程序状态的唯一虚拟地址。
History.js有很好的文档记录/维护,并支持所有浏览器。
https://github.com/browserstate/history.js
从网站:
History.js 在所有浏览器中优雅地支持 HTML5 History/State API(pushState、replaceState、onPopState)。包括对数据、标题、replaceState 的持续支持。支持 jQuery、MooTools 和原型。对于 HTML5 浏览器,这意味着您可以直接修改 URL,而无需再使用哈希。对于 HTML4 浏览器,它将恢复使用旧的 onhashchange 功能。
我对真正简单的历史(nee dhtmlHistory)很幸运。它不是特定于 jQuery 的,但它适用于 IE、firefox 和 webkit,并且不需要太多设置。
也许试试这个 jQuery History 插件:https ://github.com/balupton/jquery-history/它提供跨浏览器支持、绑定到哈希、重载哈希等等。
它还有一个 Ajax 扩展,允许它轻松地将您的网页升级为适当的 Ajax 应用程序:https ://github.com/balupton/jquery-ajaxy/
总的来说,它有据可查、受支持且功能丰富。它也在这里赢得了一个赏金问题如何在 URL 中显示 Ajax 请求?
或者,如果您想使用 HTML5 History API,请访问:https ://github.com/browserstate/history.js
AFAIK,所有历史插件都做同样的事情:
setInterval(function() {
if(theHashChanged) {
someFunction(oldHash,newHash);
}
}, 500/*whatever*/);
这就是它的核心(减去浏览器黑客在不点击链接的情况下添加历史条目等)。它总是会出错,因为它有点像 hack,并且没有用于处理历史更改的跨浏览器 API。
最重要的是,这类事情的用户体验不是很好。用户不明白什么时候必须点击 4 次返回按钮才能离开页面。