1

我正在开发一个 100% ajax 的系统,当然,第一个请求除外。

我有兴趣使用 javascript 更改 document.location 中的地址。但我不希望浏览器在那个“新”位置加载页面。

有谁知道我该怎么做?

4

3 回答 3

7

在不导航的情况下更改整个 URL 是不可能的,想象一下它可能产生的安全问题。

您只能更改location.hash,它是 URL 中#符号后面的部分:

location.hash = "foo";

您的网址将更改为http://someurl.com/#foo

于 2010-05-29T23:23:05.973 回答
7

要重写整个位置而不仅仅是“哈希”部分,可以使用浏览器历史 API,尽管目前它似乎只在 Gecko 1.9.3/Firefox 4 中受支持

history.replaceState({}, document.title, url)
于 2010-05-30T01:36:20.807 回答
1

您可以使用 Gmail 使用的相同方法。在 url 的末尾附加一个锚点,浏览器不应重新加载页面,但您可以读取其中的信息document.location.href并对其进行操作。这也将保持后退按钮的功能完好无损(如果您的 javascript 支持它)

例如

第一页是http://www.mypage.com/index.php您单击到下一个“页面”使用<a href="#page2">link</a>,它会更改为http://www.mypage.com/index.php#page2

于 2010-05-29T23:26:10.567 回答