谷歌地图会这样如果我浏览到澳大利亚,URL会变成
https://www.google.com/maps/@-28.0345854,135.1500838,4z
我有兴趣在我的web应用程序上做这样的事情。到目前为止,我有这个:
var baseurl = window.location.href.split("/@")[0]
window.history.replaceState( {} , 'foo', baseurl+'/@foo' );
可以很好地将"/@foo"添加到url
我的问题是,添加/@foo后,URL不工作,它404es。
我对修改浏览器的历史记录不感兴趣,这就是为什么我使用replaceState而不是pushState。
无论如何,有办法做到这一点与js?还是需要服务器端代码来提供适当的页面?
谢谢
您"需要服务器端代码来提供适当的页面"。@
字符仍然是URL的一部分,因此需要由服务器处理。如果您只想处理这种情况的客户端,那么您想要的是使用#
代替。哈希之后的任何内容都是客户端处理的,不会触发从服务器加载新页面。
有几个库使用它来在单页HTML应用中复制路由。例如:
- <
- Backbone.js路由器/gh>
- jQuery-Router
- jquerymobile-router
- 安博。路由器