0

在我的网站上,我使用 ajax 来获取页面的元素。当我这样做时,我只是将地址添加到地址栏中的哈希中。但这会生成看起来不太好的链接,例如,当用户想要访问时hostname.com/path,我的 javascript 会在地址栏中放置如下内容:hostname.com/path#/path

最近我在本地社交网站上看到,可以操纵链接的路径部分。我正在谈论的网站以某种方式修改了第一个/. 因此,当我进入时mysocialsite.com/path,它会删除该/path部分并将其替换为#/path. 我怎样才能做到这一点?据我所知,无法修改 URL(除了 # 部分),但显然我错了。

编辑:这正是我想要做的:

  1. 我要去somepage.com/path/to/resource。在我的地址栏中输入,然后单击输入。
  2. 现在页面已加载,该页面上的 javascript 将链接更改为somepage.com/#path/to/resource,而无需进行任何进一步的页面重新加载或任何类似的事情。
4

2 回答 2

1

您可能正在寻找pushstate

var infoToStoreIfYouNeedThis = { foo: "bar" }; // might not need this at all
history.pushState(infoToStoreIfYouNeedThis , "Title of new page", "/#newLocation");

这会将 url 更改为“domein.ext/#newLocation”,而无需重新加载页面。如果您转到/#anotherLocation,然后按浏览器返回,您将转到/#newLocation。不过要小心,不是 IE9 及更低版本,可以在此处找到支持图表

如果您不介意重新加载(您可能会这样做):

window.location = "/#newLocation"
于 2013-08-22T18:00:14.243 回答
0

你当然可以。没有什么可以阻止您处理控制器/,然后处理客户端代码#。请注意,您无法摆脱 initial /,但您可以执行以下操作:

http://example.com/#/path/segment2/segment3
于 2013-08-22T17:56:49.693 回答