表单发布完成后,在目标上执行文件上载后,从iframe获取数据

Boa*_*rdy 6 html javascript php iframe

我有一个表单,当表单发布到PHP脚本时,使用target属性来定位iframe.这部分工作正常,但我需要根据PHP脚本将放入iframe的几个结果做一些事情.

我想要做的是当PHP脚本完成发布时,回显出一些包含各种元素的隐藏输入字段,例如帖子的状态,是否成功以及如果成功发布,最终结果是什么.

但是,如果我这样做会将它放入iframe,那么主网页将无法访问隐藏的输入字段.

主网页如何能够访问这些隐藏的输入字段,以便主网页可以执行某些操作,即在网页中创建一个div显示特定的错误消息或其他什么.

另一件事是,一旦我知道如何从隐藏的输入字段中获取数据,我怎么知道何时可以获取值.我想当表单通过JavaScript document.forms["myform"].submit()代码发布时,我可以执行一个while循环并检查是否设置了另一个隐藏的输入字段状态,一旦它说完成,我就可以从隐藏的输入字段中获取值.

我不确定我建议的方式是正确的方式还是我想要实现的目标,或者是否有更好的方法.

UPDATE

我已经尝试了@lanzz的建议,但似乎没有效果.以下是我的尝试.

$("iframe#image_upload_frame").on('load', function()
{
   var iframeBody = this.contentDocument.body;


   var data = $(iframeBody).find("#imageDirectory");
   alert("data: " + data);
});
Run Code Online (Sandbox Code Playgroud)

以下是iframe的定义方式

<iframe id="image_upload_frame" name="image_upload_frame"></iframe>
Run Code Online (Sandbox Code Playgroud)

我在iframe中的php脚本中回显了一个隐藏的输入字段.

echo '<input type="hidden" id="imageDirectory" value="'.$imageDirectory.'" />';
Run Code Online (Sandbox Code Playgroud)

回声肯定是有效的,因为当我看到iframe源我可以看到隐藏的输入时,警报对话框永远不会显示为某些东西不起作用.谷歌Chrome开发者控制台没有报告任何错误.

nxt*_*rld 5

如果我理解正确 - 一旦将值加载到iframe中,您需要父窗口中iframe的值.我会将javascript添加到调用父节点并执行函数的iframe中.

在主框架中:

function incomingValue(val) {
   alert(val)
}
Run Code Online (Sandbox Code Playgroud)

以及生成的iframe中的某个位置:

<script type="text/javascript">
 parent.incomingValue("Hello world");
</script>
Run Code Online (Sandbox Code Playgroud)

假设两个帧源共享同一个域,这应该可行.