【发布时间】:2012-05-22 05:11:23
【问题描述】:
我最近在一些网站上看到了这种情况,其中链接更改了window.location 的href,但是单击链接时页面不会重新加载,并且页面仍然向下滚动了它的数量前。有谁知道这是怎么做到的?
【问题讨论】:
我最近在一些网站上看到了这种情况,其中链接更改了window.location 的href,但是单击链接时页面不会重新加载,并且页面仍然向下滚动了它的数量前。有谁知道这是怎么做到的?
【问题讨论】:
您正在考虑的网站可能使用新的 HTML5 History API,它允许您更改后退按钮和地址栏的行为。这是一个演示:http://html5demos.com/history
请注意,大多数带有超链接的有趣业务都会使搜索引擎感到困惑。确保您的网站可以在旧版浏览器中正常运行(想到 Lynx)和/或阅读 Google 的 Ajax Crawling Guidelines。
【讨论】:
如果您想更改浏览器地址栏中的 URL 而无需重新加载页面,请执行此操作
<a href = "#" onclick="var stateObj = { foo: window.location.href };history.pushState(stateObj, "page 2", "newpage.html");">Change URL</a>
stateObj = 将推送页面当前状态的堆栈
"page2":这个参数当前被FF忽略了。
"newpage.html" : 将在地址栏中显示的新 URL
参考:https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history
支持:FF 4.0+、Chrome 8.0+、Safari 5.0+、Opera 11.5+、iPhone 4.2.5+
【讨论】: