我想隱藏加載在iFrame中的網站的元素。腳本和網站可能需要一段時間,因此請求iFrame內容僅在修改後才顯示。如何使IE 8在onload元素完成之前不顯示任何內容到iFrame?
我使用onload事件來執行隱藏元素的腳本。我可以訪問iFrame內容(它位於相同的域,但不是相同的服務器/網絡)。
function frameLoaded() {
sleep(3000); //simulating the time the script needs
var leftDiv = window.frames.testFrame.document.getElementById("leftcol");
leftDiv.style.display = "none";
}
簡單睡眠功能:
function sleep(milliSeconds){
var startTime = new Date().getTime(); // get the current time
while (new Date().getTime() < startTime + milliSeconds); // hog cpu
}
當與所述iFrame網站被裝載在第一次滾動條和一些樣式的元件示出,但沒有任何內容文本:
http://img651.imageshack.us/img651/5082/beforeu.png
當腳本完成時,頁面顯示爲應該是(天藍色的div變爲隱藏):
http://img51.imageshack.us/img51/6806/afterq.png
雖然腳本在工作,但不應該顯示任何內容。無論是一個空的iframe或等待onload結束的整個網站都足夠了。
您是否正在加載您自己的網站?或者它是第三方網站?我只問,因爲如果你可以添加一些JavaScript的網站被加載到IFrame中,你可以把以下行document.body.onload = function(){parent.frameLoaded();}並擺脫所有這些睡眠函數調用。 – Zoidberg 2011-06-06 11:17:36
這是第三方。睡眠只是爲了模擬一個「長」的腳本執行時間。顯然,腳本確實有可能需要一些時間。這將是相當複雜,也可以通過智能手機訪問 – user756954 2011-06-06 11:26:25