发现iframe搭配书签的一个用法

标签:HTML

今天在用Gmail里的Google Talk时突然注意到一个现象:打开聊天窗口后,在收件箱和Buzz之间切换时,聊天窗口并不会关闭。

懂HTML的都知道,这应该是采用了框架结构,使得打开新的链接不会覆盖当前窗口,而只是更新其中一个iframe。

这对于需要使用音乐播放器之类的网站是很有用的,可它有个弊端:不会显示新页面的URL。常逛猫扑的都知道,猫扑大杂烩就用了框架结构,以至于打开新帖,地址栏显示的还是老帖的URL。

不过Gmail很巧妙地使用了书签来处理URL不变的情况:
https://mail.google.com/mail/?shva=1#inbox
https://mail.google.com/mail/?shva=1#buzz

由于#之后的URI部分是不传递给服务器的,当浏览器发现与当前页面的URI相同时,就直接定位到这个书签,并不请求服务器,这就避免了页面刷新。
而与此同时,#之后的部分将会附加到地址栏的原始URI,这样就解决了URI不变的问题。
最后再用JavaScript捕捉这个事件,载入对应的iframe即可。

9条评论 你不来一发么↓ 顺序排列 倒序排列

    向下滚动可载入更多评论,或者点这里禁止自动加载

    想说点什么呢?