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