鉴于Twitter和Gawker使用hashbang urls(井号+感叹号的URL)饱受负面报道,我很难找到任何使用它们的例子或库。
我想在我们网站上的JavaScript轮播组件中使用hashbang urls,以便我们可以直接链接到轮播组件的特定页面。
是否有任何良好的跨浏览器库或示例(最好是非jQuery,因为我们使用Prototype),可用于将新的URL推送到页面位置并在页面加载时解析URL?
鉴于Twitter和Gawker使用hashbang urls(井号+感叹号的URL)饱受负面报道,我很难找到任何使用它们的例子或库。
我想在我们网站上的JavaScript轮播组件中使用hashbang urls,以便我们可以直接链接到轮播组件的特定页面。
是否有任何良好的跨浏览器库或示例(最好是非jQuery,因为我们使用Prototype),可用于将新的URL推送到页面位置并在页面加载时解析URL?
我们一直在开发一个处理URL路由映射的库:https://github.com/OpenGamma/RouteMap,如果你还在寻找这样的库,请查看它。
Google Closure Library有一个非常酷的浏览器历史堆栈实现。您可以从这里访问历史源代码。
要使用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);
然后在页面中导航到一些哈希 URL,您应该在控制台中看到已更改的哈希作为日志。
https://github.com/browserstate/History.js 我没有使用过它,因为我使用的是BBQ Jquery,但看起来它应该可以解决你的问题。