这里是案例: 我们有一个文件上传页面。我们不希望在上传完成后重新加载页面,因此我们将表单放入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