我想知道当我在相册中的图片之间切换时,facebook如何更改网址?没有哈希标记,只是一个真实的网址。
实施例: 当前网址:facebook.com/photo.php?fbid = XXXXXX1,如果我点击下一步,网址将更改为facebook.com/photo.php?fbid=XXXXXX2
有人知道如何用JavaScript实现这个目标吗?
答案 0 :(得分:9)
它推送一个新的历史状态(一个HTML5的东西),而不是使用哈希键。
答案 1 :(得分:1)
我的第一个预感是:
document.location = facebook.com/photo.php?fbid=XXXXXX2;
通过某种方式阻止默认重新加载页面操作。
答案 2 :(得分:1)
总结所有答案,
我们可以说(我不是FB编码器)Facebook使用:支持这些方法的浏览器上的HTML5 window.history.pushState / replaceState / popState
方法(我认为其中一个是Chrome)。通过这种方式Facebook 更改了真实网址(而不仅仅是#
字符后面的部分。)
在其他浏览器上,不支持这些新的HTML5方法(如IE6 / IE7和IE8),Facebook只需更改#
字符后的网址部分,只需设置{ {1}}属性。
答案 3 :(得分:0)
在我的测试中,它只更改了哈希标记:
E.g。真正的URL是:
http://www.facebook.com/photo.php?fbid=x&set=z
并点击下一步结果:
http://www.facebook.com/photo.php?fbid=x&set=z#!/photo.php?fbid=y&set=z&pid=pid&id=id
为Google AJAX crawl设置哈希后的部分。但是出于浏览器的目的,它只是一个哈希(片段标识符)。