是否有任何 javascript 库可用于处理 hashbang/shebang (#!) url?
鉴于 Twitter 和 Gawker 使用 hashbang url 的负面新闻,我很难找到任何示例/库来了解如何实际使用它们。
我想在我们网站上的 javascript 轮播中使用 hashbang url,以便我们可以直接链接到轮播的特定页面。
是否有任何好的跨浏览器库或示例(最好是非 jQuery,因为我们使用 Prototype)用于将新 url 推送到页面位置并在页面加载时解析 url?
With all the negative press over Twitter and Gawker's use of hashbang urls I'm having a very hard time finding any examples/libraries for how to actually use them.
I'd like to use hashbang urls in a javascript carousel on our website so we can link directly to a specific page of the carousel.
Are there any good cross-browser libraries or examples (preferably non-jQuery, since we use Prototype) for both pushing new urls to the page location and for parsing the url on page load?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我们一直在开发一个进行 URL 路由映射的库:https://github.com/OpenGamma/RouteMap 如果您仍在寻找一个。
We've been working on a library that does URL route mapping: https://github.com/OpenGamma/RouteMap if you're still looking for one.
Sammy.js 使用它们来创建类似于 西纳特拉.
Sammy.js uses them to create handlers like the ones used in Sinatra.
Google Closure Library 对于浏览器历史堆栈有一个非常酷的实现。您可以访问历史记录源代码在这里。
要使用 Closure Library 历史管理器,您应该定义一个隐藏输入。有窍门。如果您没有为类提供输入字段,它会为您创建一个输入字段,但由于跨浏览器支持,它会尝试使用
document.write
附加它的 DOM。最好、最简单的方法是提供隐藏的输入。这是 goog.History 的一个简单实现。
然后导航到页面中的一些哈希网址,您应该在控制台中看到更改后的哈希日志。
Google Closure Library has a really cool implementation for browser history stack. You can reach history source code from here.
To use Closure Library history manager you should define a hidden input. There is the trick. If you don't give a input field to class, it will create one for you, but it will try to append it DOM with
document.write
because of cross browser support. The best and easy way is providing a hidden input.Here is a simple implementation of goog.History.
Then navigate to some hashed urls in your page and you should see your changed hash in your console as log.
https://github.com/browserstate/History.js 我对此没有任何经验,因为我使用 BBQ Jquery,但看起来它应该可以解决您的问题。
https://github.com/browserstate/History.js I have no experience with it as I use BBQ Jquery, but it looks like it should solve your problems.