我在Facebook上并意识到当我更改页面时,页面地址会发生变化,但页面不会重定向,而是通过ajax加载。
您可以告诉,因为当您单击链接但URL更改时,控制台不会清除。
很奇怪,但有人知道它是如何完成的吗?
答案 0 :(得分:0)
Facebook运行大量的AJAX调用,可以更改页面状态和部分。 因此,要通过复制URL地址使页面可链接到某人,每次调用AJAX相关函数时,他们都会使用假锚“#!”更新URL。加上真实的地址。 简单地当您加载真实页面(使用F5或链接那么某人)时,JS解析器会在#之后捕获字符串! (如果有)并将你重定向到baseaddress + that。
我相信这样的事情(未经测试):
var urlstr = new String(location.href);
var urlparm = urlstr.split('#!');
var last = urlparm.length - 1;
if( (urlparm[last] != urlparm[0]) && (urlparm[last] != "/") )
{ var redir = "http://www.facebook.com" + urlparm[last];
location.href = redir;
}
在谷歌浏览器中,URL确实发生了变化,我认为某处存在哈希,但我不知道在哪里以及如何。