gpt4 book ai didi

javascript - 在 Backbone.js 中组合哈希和非哈希 URL

转载 作者:数据小太阳 更新时间:2023-10-29 04:50:01 27 4
gpt4 key购买 nike

有没有什么方法可以在 Backbone.js 应用程序中组合 hashnon-hash URL?

我设置了Backbone.history.start({pushState: true}) .当用户点击某个链接时,我从服务器获取 JSON 数据,更新页面,然后调用 Backbone.history.navigate将浏览器中的 URL 从(例如从 example.com/zlinsky/kampan/mf/ 更改为 example.com/moravskoslezsky/kampan/mf/ )。
如果用户从浏览器复制 URL 并在第二个选项卡中打开,他将看到相同的页面(因此以这种方式更新的每个页面在服务器上都有相应的页面)。这正是我想要的。

但现在我遇到了问题......

我有几个<select>也在页面上。当用户更改其中的值时,我会在页面上进行一些动态更改(无需从服务器获取 JSON,更新仅在客户端完成)。我想根据 <select> 更改 URL ,例如 example.com/moravskoslezsky/kampan/mf/#state1 (因此,当有人发送此 URL 时,另一方将看到与发件人处于相同状态的相同页面)。

我找不到方法,如何在 Backbone.js 中做到这一点。如果我设置 pushState: trueBackbone.history , Router忽略散列标签。
如果我设置 pushState: false ,我无法像上面第一段中描述的那样设置 URL。

感谢您的任何提示。

最佳答案

您可以调用: Backbone.history.navigate( "/foo/bar#fragment")

但我认为这不是一个好主意,因为 ie 不支持 pushstate,所以 backbone 将使用 hash bang urls(在 ie 中)。

也许你可以使用查询字符串:Backbone.history.navigate( "/foo/bar?foo=bar", true ) 这将在现代浏览器中:http://domain .tld/foo/bar?foo=bar 并且在 ie 中:http://domain.tld#/foo/bar?foo=bar

关于javascript - 在 Backbone.js 中组合哈希和非哈希 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9055670/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com