IE7对iframe的支持

由于用discuz6.0,把分栏模式打开了,然后问题就来了。

用IE7打开这个discuz讨论区的时候,

如果在同一个窗口新开一个tab,或者在同一个窗口的tab中对超链接进行mouseover或者click(a)

,那么回到原来讨论区的tab,就发现右栏变空白了。

虽然是变空白了,然而我们把鼠标点住右栏中的空白,向右拽,运气好的话还是能看见这个页面。

那就是说,右栏的页面宽度变长了。

加入onresize=

alert(‘sth’)

,可以发现在(a)的过程中,该右栏页面确实被resize了。

再打印一下这个宽度值,发现居然是0x4444444?,这也太夸张了。

查了一下资料,说是IE7对iframe的支持存在问题,当iframe的width设置成百分比表示的时候,iframe的width在这种情况下就不正常。这需要改成px像素格式的。

针对IE7的改正办法:

在frame.htm中

body

标签中加入:onload=

resizeframe();

onresize=

resizeframe();

在之前的javascript段中加入:

function resizeframe() {

var browserwidth = document.body.clientWidth;

var mainfr = document.getElementById(‘main’);

mainfr.style.width = browserwidth – {$framewidth};

}

经测试,可用,而对firefox及ie6均正常,当然可以在resizeframe针对浏览器再作判断。原理就是模仿浏览器对resize的动作进行内容区的处理过程,重复一次。

问题解决。效果如:http://www.88lgt.com/bbs/

不过分栏模式还有别的问题,没事还是别打开。。。。。。