我正在开发一个 100% ajax 的系统,当然,第一个请求除外。
我有兴趣使用 javascript 更改 document.location 中的地址。但我不希望浏览器在那个“新”位置加载页面。
有谁知道我该怎么做?
我正在开发一个 100% ajax 的系统,当然,第一个请求除外。
我有兴趣使用 javascript 更改 document.location 中的地址。但我不希望浏览器在那个“新”位置加载页面。
有谁知道我该怎么做?
在不导航的情况下更改整个 URL 是不可能的,想象一下它可能产生的安全问题。
您只能更改location.hash
,它是 URL 中#
符号后面的部分:
location.hash = "foo";
您的网址将更改为http://someurl.com/#foo
要重写整个位置而不仅仅是“哈希”部分,可以使用浏览器历史 API,尽管目前它似乎只在 Gecko 1.9.3/Firefox 4 中受支持。
history.replaceState({}, document.title, url)
您可以使用 Gmail 使用的相同方法。在 url 的末尾附加一个锚点,浏览器不应重新加载页面,但您可以读取其中的信息document.location.href
并对其进行操作。这也将保持后退按钮的功能完好无损(如果您的 javascript 支持它)
例如
第一页是http://www.mypage.com/index.php
您单击到下一个“页面”使用<a href="#page2">link</a>
,它会更改为http://www.mypage.com/index.php#page2