1

我刚刚注意到,当我在我的 facebook 新闻提要上单击一张照片时,窗口位置发生了变化,照片出现了,但上一页的内容仍然在照片的后面。您可以看到它,因为照片查看器的背景是透明的。

如何做到这一点?

4

2 回答 2

1

出色地。URL 更改为:/photo.php?fbid=10150643780577073&set=a.446526812072.240769.709452072&type=1&theater

查询字符串中有足够的信息可以知道用户来自哪个页面。此信息用于在前景中显示照片并在背景中包含原始页面。所以这两个页面都使用了一些如果 facebooks 后端代码来生成 html 前端,并且在 photo.php 页面的情况下包括一些额外的东西:前景图片加上必要的 css 和脚本。

于 2012-04-09T20:04:48.710 回答
0

将来它将使用 HTML5 的历史 API。但是为了跨浏览器兼容性和向后兼容性,请使用history.js库。

在 HTML5 之前,在不导致页面刷新的情况下设置位置的方法是将 # 锚位置附加到 url,就好像您已移动到锚位置(传统上用于移动并链接到页面上的特定段落),例如url/to/page#someposition

这概括为在锚中表示页面状态;例如,gmail 中的特定消息具有 URLhttps://mail.google.com/mail/?shva=1#inbox/2h42c4ahe7fge7等。

如果你使用 history.js,你应该能够在它们得到广泛支持时轻松升级到 pushState 等。

于 2012-04-10T20:09:03.403 回答