2009-02-10 63 views
2

可能重複:
fb like button creates a white background on page onload in all ie versions在內容加載之前,我可以更改或控制IFRAME區域的顏色嗎?

我有該內容的部分被加載到iframe的位點。

我遇到的問題是,iFrame的內容裏面是白色的,直到頁面本身的負荷,並且內容具有不同的背景顏色(藍色,在這種情況下)。所以我在屏幕上有這些白色方塊,直到內容加載。

有什麼辦法來指定什麼顏色空的IFrame應該呈現爲,直到它有內容?

還是我在這裏採取了錯誤的粘性 - 有從渲染保持頁面,直到內容已經能夠顯示的好辦法?

更新:看起來我所描述的「白色區域」位是特定於IE的。

回答

3

這不是太難:

<iframe id="IFR" src="time.php" style="background-color: #f00;" />

編輯:我忽略了IE測試 - 它工作在Firefox。示例在:http://beta.tagcloud.com/contain.html

該示例演示了頁面快速切換爲全紅,然後當iframe加載(5秒鐘)時,它切換爲黑色。

+0

不起作用。仍然呈白色。 – 2009-02-10 04:00:50

1

也許你可以設置iframe的文件並加載內容之前設置它的風格。

或者你可以使用Ajax,而不是有這些問題。 =](假設如果它是合適的,當然了任務。)

+0

嗯,我試圖做的事情是從WordPress的負載內容,然後只需要在WordPress客戶編輯「頁面」不搞砸了主要佈局。 – 2009-02-10 03:29:24

1

這是我發瘋,但我居然發現,似乎在IE6工作,7尚未在其他瀏覽器測試解決方案,但Firefox似乎做正確反正。

如果iframe在加載時沒有顯示,但問題解決了,但iframe似乎立即觸發「onload」,所以在發出警報後,我發現它在頁面加載時觸發onload兩次,然後再次iframe頁面加載所以...

 

<iframe id="theFrame" src="frame.html" style="display:none;" onload="loadFrame();"></iframe> 

//and here is the associated javascript 
loadCount = 1; 
function loadFrame() { 
    if(loadCount > 1) { //this keeps the script from displaying the frame on the first fire 
    document.getElementById('theFrame').style.display=''; 
    return; 
    } 
    loadCount++; 
} 
0

最簡單的方法來解決這個問題,只是不顯示iframe,直到它準備好。這樣你可以在iframe下設置你想要的任何背景。您可以設置背景和防止顯示的iframe,直到加載像這樣:

<div style="background-color:#XXXXX"> 
    <iframe src="..." style="visibility:hidden;" onload="this.style.visibility='visible';"></iframe> 
</div> 

唯一的缺點是,如果你的訪問者有JS關閉,他們不會看到的iframe。如果這是一個關心你看看http://css-tricks.com/prevent-white-flash-iframe/

相關問題