近日,在做复杂页面时,需要将若干(html)子页面放入主页面中,尝试了多个技术,最终采用了<object>加载文件的做法。成功后,将过程记录下来,以飨读者。
1、<iframe>这个是最常用的,但是在IE6中存在一个问题,当用户点击子页面的链接时,页面会根据该链接的位置重新定位,firefox 3.5则无此现象。因此虽然这个方案可以正确的显示布局,但是考虑到浏览器存在的特殊反应,只能pass这个方案。
2、<frameset>这个方案达不到要求,无法正确显示布局,pass。
3、经过几番搜索,终于找到了替代方案<object>。我们都知道<object>可以加载各种类型的媒体文件,html也是其中之一。但是这里有个问题,纵然我设置了子页面的长和宽小于指定区域的长和宽,但是在IE6中依然存在纵向的滚动条,Firefox则没有。为了取消这个滚动条,我是绞尽脑汁,尝试了大量的方法,但是都不见效。最终,一个帖子让我茅塞顿开。原来子页面的body标签默认设置是显示滚动条的,因此IE6在加载子页面的时候,会读取并应用这个属性,我们只需要将子页面的overflow属性设定为visible即可。CSS写法:body { overflow:visible; }。
至此,关于object加载html的应用告一段落,希望对您有所帮助。