这是描述问题的场景:
用户 A 有一个支持 HTML5 状态的浏览器,并将此链接发送给用户 B:
http://domain.tld/node
使用不支持 HTML 5 状态的浏览器的用户 B导航到另一个节点,并将链接发送回用户 A:
http://domain.tld/node#!/another-node
但是当用户 A 单击链接时,显示的内容为 ,/node
而不是/another-node
。
查询Asual 的 jQuery$.address()
插件显示它正在将“hashbang 地址”解释为哈希值:
> $.address.value()
"/node#/another-node"
> $.address.path()
"/node"
> $.address.hash()
"/another-node"
(奇怪的是,“!”是从 hashbang 中删除的。)
可以通过更改我的实现来克服这种歧义吗?
如果在 URI 中找到 hashbang,我可以禁用对历史 API 的支持,但我宁愿不这样做。