這裏是案例: 我們有一個文件上傳頁面。我們不希望在上傳完成後重新加載頁面,因此我們將表單放入iframe中。 iframe內部的表單發佈到自身,並在完成時返回json。我們如何捕捉到這種迴應?上傳完成後,iframe會重新加載,所以換句話說,當iframe重新加載時我們如何捕獲?如何從父文檔捕獲iframe中的刷新內容?
承擔這些:
- 我們不能打印/除了JSON對象返回任何
- 我們不能使用AJAX,因爲你不能發佈文件(所以沒有js代碼調用父文檔的功能。)使用ajax
- 我們不能在iframe中追加javascript代碼,因爲一旦iframe中的表單被提交,頁面就會被重新加載,我們將失去附加的js代碼。
任何想法?
UPDATE - 似乎是一個解決辦法是超級簡單(在網上找到的地方):
<iframe onload="alert(window['upload_iframe'].document.body.innerHTML);" ...></iframe>
通過這種方式,它會觸發警報,每當一個iframe內部頁面重新加載。現在只需要將JSON對象與HTML代碼區分開來,這非常簡單。感謝大家的一個偉大的建議!
爲什麼你不能返回任何東西,除了一個JSON對象?這似乎是你在那裏設置的一個非常尷尬的限制。 – glenatron
@glenatron json是從java servlet返回的。據我所知(我不是後端人),有一個通用類在其他servlet中使用,它「構建」並返回json ...我們通常通過ajax使用這些servlet,但在這種情況下不會..所以,因爲當頁面加載時,沒有地方發送json,所以它打印該json ...我只需要一種方法來捕獲該json而不更改一般的java類..我希望我沒有把你搞糊塗:) – Sherzod