日期:2014-05-16  浏览次数:20360 次

花瓣网是如何做到改变地址栏url而不刷新当前网页的?




点击查看放大的大图,网页滑过,url地址栏变化了,console下输出location.href也变化了,可是网页没刷新,我肉眼确定是没刷新,用webInspector查看元素,可以确定网页的确没有reload。可是location分明变了!

据我了解的,location里只有hash部分可以用js改变而不触发网页reflesh,这难道又是什么新的API?

【注】1.请使用webkit浏览器查看
  2.花瓣网:http://huaban.com
  3.IE8下点击zoom按钮,location变成了:http://huaban.com/pins/13281264/#zoom/,可以肯定是改变了location.hash,那么,webkit为什么可以直接显示为http://huaban.com/pins/13281264/zoom/,console下log location.href也是http://huaban.com/pins/13281264/zoom/。
  4.实在百度无果,所以来csdn问问有没有遇到这个的。

------解决方案--------------------
使用了HTML5的history对象的新方法pushState,参考:HTML5 history对象新方法pushState/replaceState