javascript - 如何从父文档捕获 iframe 内的刷新?

标签 javascript jquery html ajax iframe

案例如下: 我们有一个文件上传页面。我们不想在上传完成后重新加载页面,所以我们将表单放在 iframe 中。 iframe 中的表单会发布到自身并在完成后返回 json。我们怎样才能捕捉到这种 react ?上传完成后,iframe 会重新加载,那么换句话说,iframe 重新加载时我们如何捕获?

假设这些:

  • 我们无法打印/返回除 json 对象之外的任何内容(因此没有 js 代码来调用父文档中的函数。)
  • 我们不能使用 ajax,因为您不能使用 ajax 发布文件
  • 我们不能在 iframe 中附加 javascript 代码,因为一旦提交了 iframe 中的表单,页面就会重新加载,我们会丢失附加的 js 代码。

有什么想法吗?

更新 - 看起来解决方案非常简单(在网上某处找到):

<iframe onload="alert(window['upload_iframe'].document.body.innerHTML);"  ...></iframe>

这样,只要重新加载 iframe 内的页面,它就会触发警报。现在只需将 JSON 对象与 HTML 代码区分开来,这非常简单。感谢大家的宝贵建议!

最佳答案

您是否尝试过将“onload”监听器附加到 iframe 元素以查看是否在 iframe 源更改时触发它?这可能是一个解决方案。如果它不起作用,那么我认为您别无选择,只能从 iframe 结果执行顶级函数。

更新

由于您无法控制 servlet 的响应,也许您可​​以构建一个 PHP 中值,它与 servlet 通信并获取它获取的原始 json,然后返回执行父窗口 javscript 函数所需的内容,并且将 json 传递给该函数。

这样你就可以控制输出。

关于javascript - 如何从父文档捕获 iframe 内的刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7942484/

相关文章:

javascript - 从 jQuery 中的字符串解析 JSON

javascript - toastr (jquery) 只能显示一次

javascript - 绑定(bind)点击控制

javascript - JQUERY Ajax Get方法获取数据属性

css - 水平 ionic 卷轴不起作用

html - 将子元素定位在 z-index 大于其父元素的元素之上

javascript - 查找元素在其兄弟元素中的位置

javascript - 调试生产 JavaScript 的最佳实践是什么?

javascript - iOS 上的 JS 文件/库返回 HTTP 500

javascript - 如何通过单击按钮将示例代码复制到剪贴板中