2009-10-29 68 views
0

全部,IE6动态调整div高度的问题

这是我正在尝试完成的。

我有一个嵌入在DIV中的Flash SWF。根据用户与该SWF的交互情况,我想动态调整SWF的高度。

SWF本身高度为1200像素。默认情况下,DIV的高度为690像素,因此SWF的下半部分会被裁剪(这是我想要的行为)。然后,DIV会缩小或增大,显示或裁剪更多SWF。

这里是我的HTML是什么样子:

<body> 
    <div id="flash_wrapper"> 
     <div id="flash_content"> 
      This div will be replaced by an object via SWFObject 
     </div> 
    </div> 
</body> 

这里是我的CSS:

body, html { 
    margin: 0; 
    padding: 0; 
    background:#ffffff; 
} 
#flash_wrapper { 
    width:1000px; 
    height:690px; 
    margin:0; 
} 
#flash_content { 
    display: block; 
    width: 100%; 
    height: 100%; 
} 

最后,我有一个JavaScript函数,看起来像这样:

function updateFlashDivHeight(h) { 
    document.getElementById("flash_wrapper").style.height = h; 
} 

的SWF调用JavaScript函数并将其传递给像“900px”和voilá这样的高度参数! - DIV完美调整大小。到目前为止,这在我测试过的所有浏览器(IE8,Firefox,Chrome,Safari)中都很适用,除了IE6之外。

我是一个总新手,当涉及到这个(特别是CSS),所以我可能犯了一个非常简单的错误。

非常感谢提前!

+0

'h'只是一个整数,还是像'1200px'这样的字符串?它应该是后者,包括单位。 – Joost 2009-10-29 21:17:11

+0

Joost - 感谢您的回复!是的 - 这是正确的 - 我传递一个字符串像“1200px”或“900px”,它的工作原理。只是不在IE6 – mattstuehler 2009-10-29 21:30:20

回答

0

这是在黑暗中拍摄的照片,但您是否在您的SWF中使用LocalConnection与您的Javascript功能进行通信?如果是这样,你再次检查一下你正在测试的页面是否只在一个浏览器中打开?如果页面在多个浏览器(或同一浏览器中的两个窗口)中打开,LocalConnection将无法正常工作。

+0

smurfarita - 非常感谢您的建议。但是,因为这在我测试过的所有浏览器中都能正常工作,所以我认为它与IE6有关,而不是Flash。换句话说,它看起来像Flash通常能够调用JavaScript函数。 – mattstuehler 2009-10-29 22:20:12

1

在updateFlashDivHeight例程中添加一条警报语句。这样你就知道这个例程是否行为错误 - 但仍然被调用,或者如果你的这个例程调用在某些方面是错误的。 IE6有很多错误,所以它可能是两个。

至少你知道在哪里寻找罪魁祸首。

对不起,如果这个答案是明显的。作为一个长期盯着问题的程序员,你有时会忽视这个显而易见的问题。我知道我在做:)