Javascript 在Backbone.js中组合哈希和非哈希URL
有没有办法在Backbone.js应用程序中组合散列和非散列URL 我设置了Javascript 在Backbone.js中组合哈希和非哈希URL,javascript,backbone.js,shebang,Javascript,Backbone.js,Shebang,有没有办法在Backbone.js应用程序中组合散列和非散列URL 我设置了Backbone.history.start({pushState:true})。当用户单击某个链接时,我从服务器获取JSON数据,更新页面,并调用Backbone.history.navigate将浏览器中的URL从(例如从example.com/zlinsky/kampan/mf/更改为example.com/moravskoslezky/kampan/mf/)。 若用户从浏览器复制URL并在第二个选项卡中打开,他将
Backbone.history.start({pushState:true})
。当用户单击某个链接时,我从服务器获取JSON数据,更新页面,并调用Backbone.history.navigate
将浏览器中的URL从(例如从example.com/zlinsky/kampan/mf/
更改为example.com/moravskoslezky/kampan/mf/
)。若用户从浏览器复制URL并在第二个选项卡中打开,他将看到相同的页面(所以以这种方式更新的每个页面在服务器上都有相应的页面)。这正是我想要的 但现在我有问题了 我在第页上也有几个
。当用户更改其中的值时,我会在页面上进行一些动态更改(不从服务器获取JSON,更新只在客户端完成)。我想根据
更改URL,例如更改为example.com/moravskoslezsky/kampan/mf/#state1
(因此,当有人发送此URL时,另一方将看到与发件人相同状态的相同页面)
我找不到方法,如何在Backbone.js中实现它。如果我在Backbone.history
上设置pushState:true
,Router
忽略散列标签。如果我设置了
pushState:false
,我就不能像上面第一段所描述的那样设置URL
谢谢您的提示。您可以拨打:
Backbone.history.navigate(“/foo/bar#fragment”)
但我认为这不是一个好主意,因为ie不支持pushstate,所以主干网将使用hash-bang URL(在ie中)
也许您可以使用querystring:
Backbone.history.navigate(“/foo/bar?foo=bar”,true)
这将出现在现代浏览器中:http://domain.tld/foo/bar?foo=bar
和ie:http://domain.tld#/foo/bar?foo=bar
您能解决这个问题吗?我面临着完全相同的问题。当pushState为true时,我无法路由包含哈希部分的URL;哈希完全被忽略了。