2009-09-23 91 views
0

如果已在其他地方回答了此問題,但我一直無法找到它引用的道歉。 (可能是因爲沒有人願意做這樣愚蠢的事情,我承認)。javascript:等待iframe頁面寫入之前加載(但不是從觸發加載的頁面開始)

因此,我有一個包含三個iframe的頁面。一個事件觸發一個JavaScript函數,將新頁面加載到另外兩個iframe中; ['topright']和['bottomright']。

但是,正在加載到iframe'topright'的頁面中的javascript需要將信息發送到'bottomright'iframe中的元素。

window.frames ['bottomright']。document.subform.ID_client = client; 等

但是,這隻會在頁面已完全加載到右下框架時才起作用。那麼在'topright'iframe中代碼的最有效方式是檢查並確保在寫入之前,在底部框架中的表單元素實際上可用於寫入?請記住,頁面加載並未從右側框架觸發,因此我不能簡單地使用onLoad函數。

(我知道這可能聽起來像是從一個網頁到另一個獲取數據的令人髮指的曲折路線,但那是另一回事。客戶永遠是對的,等... :-))

回答

0

如果我沒有理解你的問題正確的,而你控制所有的幀的內容,所有的幀內容從同一個域,您可以在bottomright框架拉從topright觸發onload事件的數據,而不是試圖它。

bottomright甚至可以調用的函數topright並問的數據(這在我的腦海裏仍然的一種形式)。

事情是這樣的:

​​

未經檢驗。我不是100%肯定從bottomright通過window將工作,在這種情況下,這可能是一種替代方案:

// topright 
function pushData(frame, form, name, value) { 
    top.frames[frame].document.forms[form].elements[name] = value; 
} 

// bottomright 
window.onload = function() { 
    top.frames['topright'].pushData('bottomright', 'sub_form', 'ID_client', 'client'); 
}