2009-10-29 65 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有很多錯誤,所以它可能是兩個。

至少你知道在哪裏尋找罪魁禍首。

對不起,如果這個答案是明顯的。作爲一個長期盯着問題的程序員,你有時會忽視這個顯而易見的問題。我知道我在做:)