首先,感谢大神你进来帮我,我的描述文字有点长,但事实上很简单,也有抛砖引玉的意思。都说慎用iframe,原因是蜘蛛不抓取iframe里面的内容,但我是参考了猫扑大杂烩之后,作了比较周全考虑的。
我有一个论坛,论坛列表显示全部帖子,开窗(即B页面)阅读。
但为了突出某几个主题,单独做成专题的形式,各专题下有多个主题帖子。
为了提升用户体验,实现同一窗口阅读,所以在A页面(即专题页)调用B页面(即帖子阅读页)。调用是成功了,但问题是B页面和A页面的页面布局几乎相同,即相同的导航、相同的主体部分宽度、相同的页脚,现在要在A页面中对B页面的布局进行重新控制,即去掉导航、页脚等不需要的地方,只保留帖子显示即可。
我使用了JS的onload事件,是可以控制B页面的样式,但最不能忍受的是必须B加载完才执行onload事件,也就是说,B加载的过程用户看得清清楚楚,即看着B全部加载完,然后又看着页头和页脚消失,这样的用户体验是绝不能出现的。我想,有没有什么方法可以判断B被A调用了,如果有方法可以判断,那么我可以在B中写代码来控制,比方说设置导航和页脚的DIV为runat=server,如果判断是被A调用,那么隐藏Visible=false即可。现在就是想请教,如何能够判断B被A调用?
如果没有方法可以判断B是否被A调用,那么请问有没有方法在A中实现对B的样式控制(当然是加载前进行控制,而不是上面提到的onload加载完后再改变)。非常感谢大侠能耐心听完我的描述,能否帮上就看我的造化了,呵呵。

解决方案 »

  1. 你可以为url增加参数。例如
        http://www.abc.com/site1/open_b_page.aspx?id=32423432&flag=1
    那么B页面从服务器端就可以判断这个flag参数,当它是1或者根本没有这个参数时,根本不在html中有多余的东西存在。
      

  2. 当它是1或者根本没有这个参数时  -->  当它是1时没有这个参数,或者有但是不是1,还是下载原来的B页面完整内容。
      

  3. 非常感谢楼上哥们的好思路,确实是个好办法,我在腾讯问问上也提了同一个问题,也是一样的思路。但是也会有一种问题出现,那就是说,比如如下代码:
    <a href="http://www.123.com/abc/123.aspx?flag=1" target="iframe">尼玛,此帖必火</a>
    用户正常点击的话,肯定会在框架中打开。但假如用户不是正常点击,而是鼠标按住帖子标题拉动的话,必将在新窗口打开帖子,显示出来的帖子就惨不忍睹了,哈哈。
    当然多数人会正常点击,但我在浏览一些不新开窗口的帖子时,就经常这么干。不知除了传递参数这种办法,还没有别的好办法?
      

类似问题 »