关于Iframe在IE6下不显示的bug

IE都出到IE8了,用IE6的人渐渐少了..但还是存在的.例如QAMM们在用.

所以,IE6下存在的问题也必须解决.这两天,我就遇到一个了:

html
<table>
    
<tr>
        
<td id="tdTest" runat="server">
            
<iframe id="ifrTest" height="100%" runat="server"></iframe>
        
</td>
    
</tr>
</table>
Code
    protected void Page_Load(object sender, EventArgs e)
    {
        
this.ifrTest.Attributes.Add("src""ie6.aspx");
    }

很简单的代码,就是嵌套一个Iframe,后台绑定Iframe显示页面内容,简单得很呢.可是,这么简单的代码在IE6下就死活不显示!!

为什么呢?问题就出现在那个height="100%"上了,在IE6下height不知是取不到还是取到td原来那个未给src赋值之前的0.反正就死活不显示.

知道是这个问题,就简单了..解决办法有N种:

1.去掉height="100%",不过不设置高度iframe显示不如人意.

2.后台给td或者iframe设置一个固定值:

Code2
this.tdTest.Height = "200px";

3.前台动态设置iframe的height:

Code3
this.ifrTest.Attributes.Add("onload""iframeAutoHeight(this)");

前台还得加上:(以下这段js来自网络)

script
function iframeAutoHeight(obj)
{
    
var id = obj.id;
    
var subWeb = document.frames ? document.frames[id].document : obj.contentDocument;   
    
if(obj != null && subWeb != null)
    {
        obj.height 
= subWeb.body.scrollHeight;
    }   
}   

4.自己想吧....

另外,网络上有说IE6下scr属性排在第一位就不能显示,但是我死活尝试不出来.如果谁知道,欢迎指教:kenblove#gmail.com

原文地址:https://www.cnblogs.com/KenBlove/p/1420464.html