我有一個頁面,它在某個操作上使iframe可見,並用一些HTML(例如多選框和一個OK按鈕)填充iframe。更改可見性不會立即隱藏iFrame
上的iframe OK按鈕的定義有點像這樣的onClick方法:
onClick="parent.hideIFrame();parent.processMultiSelectBox();"
當用戶點擊內嵌框架(與多選框播放後大概)OK,我想的iFrame立即消失,然後可以處理多選框中的選定值。但這不是發生了什麼事。 iFrame在其他功能運行期間保持可見狀態,僅在第二個功能結束後消失。
的hideIFrame功能是非常簡單的:
function hideIFrame() {
frmObj = document.all.iFrameID;
if(frmObj) {
frmObj.style.visibility = "hidden";
}
}
我轉述爲了清楚起見,上面的函數(去掉了一些指示器變量賦值等)
第二函數實際上環路上在所有選項多重選擇的對象,並做它的東西。這需要大約半秒鐘,只有在完成後,我的iFrame纔會消失。點擊「確定」後,看到它停留了半秒鐘,有點令人煩惱。
我的問題是,是否有某種方法可以讓織物消失得更快。用「古典C」的術語來說,是否有一個「齊平」的能見度變化立即發生?
我注意到,如果我在第二個函數中將「alert」作爲第一行,那麼iframe會立即消失,但現在它在警告框上的確定消失,並且第二個函數完成所需的時間。
謝謝。
編輯:基於DDaviesBrackett的答案,這是我落得這樣做:
在iframe的onclick改爲:
onClick="parent.hideAndProcessMultiSelectBox(parm1, parm2);"
的hideAndProcessMultiSelectBox功能被定義爲:
function hideAndProcessMultiSelectBox(parm1, parm2) {
hideIFrame();
setTimeout(function() { processMultiSelectBox(parm1, parm2); }, 0);
}
Vo ..不延遲..
你可能會在這裏。我只是摔跤我需要傳遞給「processMultiSelectBox」參數。一旦我能讓他們去,我會更新..謝謝。 – Adnan 2009-06-12 22:52:32