2010-04-10 68 views
0

我有一個頁面,用戶可以在其中上傳文件以及其他一些輸入。因爲我想這是類似AJAX的,所以我使用了一個iFrame來完成這個任務。AJAX和iFrame:從iFrame內部調用AJAX來更新外部DIV

上傳文件並且iFrame加載了響應頁後,我需要通過AJAX調用來更新iFrame外部的DIV。單獨更新的原因是外部DIV的結果取決於用戶提供的文件輸入的輸入。

可以這樣做嗎?我以錯誤的方式接近這個嗎?

謝謝!

UPD:返回的客戶端代碼是否可以從iFrame內部的「see」元素看到該iFrame之外的元素?

+0

爲什麼你使用iFrame來完成AJAX的東西? – 2010-04-10 20:59:23

+0

@Vivan:你不能使用XHR來上傳文件,而只是其他所有東西(Flash,Java等)依賴於插件 – Quentin 2010-04-10 21:05:33

+0

糟糕。我完全跳過那部分!無視:) – 2010-04-11 03:03:26

回答

0

將代碼寫入加載到iframe的頁面的onload事件中。然後top會給你頂框或parent會給你父框架。

+0

它工作!來自iFrame中onload事件的代碼可以獲取外部DIV - 謝謝! – KcYxA 2010-04-10 21:39:19

0

是的,它可以做到。但是你可以放棄,需要一個AJAX調用,來更新div的外部。

讓您的servlet(假設您使用的是JSP/servlet)接受mutlipart請求(接受上傳的servlet),返回預期的響應(顯示在刷新的iFrame上)和ALONG WITH IT,來自文件輸入的必要信息。通過這種方式,您可以在一個響應中獲得客戶所有必要的詳細信息。一個簡單的javascript函數可以實現,用來自文件輸入的信息更新外部div。

+0

我喜歡那樣!我使用PHP,但都一樣。 我想問題是,iFrame中的響應客戶端代碼是否會看到外部的DIV?這是我似乎有問題的地方。 – KcYxA 2010-04-10 21:16:11

+0

我在大衛的幫助下得到了這個!我不知道我怎麼沒有想到你對多個AJAX調用提出的建議。謝謝! – KcYxA 2010-04-10 21:40:38