是否有任何javascript库可以使用hashbang / shebang(#!)urls?

时间:2011-02-16 19:48:23

标签: javascript url fragment-identifier shebang

由于对Twitter和Gawker使用hashbang网址的所有负面消息,我很难找到任何关于如何实际使用它们的示例/库。

我想在我们网站的javascript轮播中使用hashbang网址,以便我们可以直接链接到轮播的特定页面。

是否有任何好的跨浏览器库或示例(最好是非jQuery,因为我们使用Prototype)既可以将新网址推送到页面位置,也可以解析页面加载时的网址?

4 个答案:

答案 0 :(得分:6)

我们一直在开发一个执行URL路由映射的库:https://github.com/OpenGamma/RouteMap如果您还在寻找它。

答案 1 :(得分:1)

Sammy.js使用它们来创建Sinatra中使用的处理程序。

答案 2 :(得分:0)

https://github.com/browserstate/History.js我没有经验,因为我使用BBQ Jquery,但它看起来应该可以解决你的问题。

答案 3 :(得分:0)

Google Closure Library有一个非常酷的浏览器历史记录堆栈实现。您可以访问历史源代码from here

要使用Closure Library历史记录管理器,您应该定义一个隐藏的输入。有诀窍。如果您没有为类提供输入字段,它将为您创建一个输入字段,但由于跨浏览器支持,它将尝试使用document.write将其附加到DOM。最好的方法是提供隐藏的输入。

这是goog.History的简单实现。

var history = new goog.History(false, '', document.getElementById('historyInput'));
goog.events.listen(history, goog.history.EventType.NAVIGATE, function() {
    console.log(history.getToken());
});
history.setEnabled(true);

然后导航到页面中的一些散列网址,您应该在控制台中看到已更改的哈希值作为日志。