0

我最近在一些网站上看到了这个链接已经改变了 href 的链接window.location,但是当点击链接时页面没有重新加载,并且页面仍然向下滚动了之前的数量。有谁知道这是怎么做到的?

4

2 回答 2

1

您正在考虑的站点可能使用新的 HTML5 History API,它允许您更改后退按钮和地址栏的行为。这是一个演示:http ://html5demos.com/history

请注意,大多数带有超链接的有趣业务都会使搜索引擎感到困惑。确保您的网站可以在古老的浏览器中正常运行(想到Lynx )和/或阅读 Google 的Ajax Crawling Guidelines

于 2012-05-14T17:20:28.433 回答
1

如果您想更改浏览器地址栏中的 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+

于 2013-11-10T23:21:08.567 回答