我有一个表单,当表单发布到 PHP 脚本时,它使用 target 属性来定位 iframe。这部分工作正常,但我需要根据 php 脚本将放入 iframe 的几个结果来做一些事情。
我正在考虑做的是当 PHP 脚本完成发布后,它会回显一些包含各种元素的隐藏输入字段,例如帖子的状态,是否成功以及如果成功发布最终结果是什么。
但是,如果我这样做,它会将其放入 iframe 中,因此主网页将无法访问隐藏的输入字段。
主网页如何能够访问这些隐藏的输入字段,以便主网页可以执行某些操作,即使网页中的 div 显示特定的错误消息或其他内容。
另一件事是,一旦我知道如何从隐藏的输入字段中获取数据,我怎么知道何时可以去获取值。我在想,当表单通过 JavaScriptdocument.forms["myform"].submit()
代码发布时,我可以做一个 while 循环并检查另一个隐藏输入字段状态是否设置为完成,一旦它说完成,我就可以从隐藏输入字段中获取值.
我不确定我建议的方式是否正确或做我想要实现的目标,或者是否有更好的方法。
更新
我已经尝试过@lanzz 的建议,但似乎没有奏效。以下是我尝试过的。
$("iframe#image_upload_frame").on('load', function()
{
var iframeBody = this.contentDocument.body;
var data = $(iframeBody).find("#imageDirectory");
alert("data: " + data);
});
以下是 iframe 的定义方式
<iframe id="image_upload_frame" name="image_upload_frame"></iframe>
我在 iframe 内的 php 脚本中回显了一个隐藏的输入字段。
echo '<input type="hidden" id="imageDirectory" value="'.$imageDirectory.'" />';
回声确实有效,因为当我看到查看 iframe 源时,我可以看到隐藏的输入,但是,警报对话框永远不会显示,好像某些东西不工作一样。谷歌浏览器开发控制台也没有报告错误。