【发布时间】:2011-12-18 01:17:56
【问题描述】:
情况如下: 我们有一个文件上传页面。我们不想在上传完成后重新加载页面,所以我们将表单放在 iframe 中。 iframe 内部的表单发布到自身并在完成后返回 json。我们怎样才能捕捉到这种反应?上传完成后,iframe 会重新加载,也就是说,当 iframe 重新加载时,我们如何捕获?
假设这些:
- 我们无法打印/返回除 json 对象之外的任何内容(因此没有 js 代码来调用父文档中的函数。)
- 我们无法使用 ajax,因为您无法使用 ajax 发布文件
- 我们不能在 iframe 中附加 javascript 代码,因为一旦 iframe 中的表单被提交,页面就会重新加载,我们会丢失附加的 js 代码。
有什么想法吗?
更新 - 似乎解决方案非常简单(在网上某处找到):
<iframe onload="alert(window['upload_iframe'].document.body.innerHTML);" ...></iframe>
这样,每当重新加载 iframe 内的页面时,它都会触发警报。现在只需将 JSON 对象与 HTML 代码区分开来,这非常简单。感谢大家的建议!
【问题讨论】:
-
为什么除了 JSON 对象不能返回任何东西?这似乎是你在那里给自己设置的一个非常尴尬的约束。
-
@glenatron json 从 java servlet 返回。据我了解(我不是后端人员),有一个通用类在其他 servlet 中使用,它“构建”并返回 json ......我们通常通过 ajax 使用这些 servlet,但在这种情况下不是..所以当页面加载时,没有地方可以发送json,所以它打印那个json......我只需要一种方法来捕获那个json而不改变一般的java类..我希望我没有让你感到困惑: )
标签: javascript jquery html ajax iframe