我最近在一些网站上看到过这种情况,其中一个链接更改了window.location
的href,但是当点击链接时页面没有重新加载,页面仍然向下滚动金额它在此之前。有谁知道这是怎么做的?
答案 0 :(得分:1)
您正在考虑的网站可能使用新的HTML5历史记录API,它允许您更改后退按钮和地址栏的行为。这是一个演示:http://html5demos.com/history
请注意,带有超链接的大多数有趣的商家都会混淆搜索引擎。确保您的网站在古老的浏览器中可以接受(Lynx浮现在脑海中)和/或在Google的Ajax Crawling Guidelines上阅读。
答案 1 :(得分: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”:将在地址栏中显示的新网址
参考: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 +