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开发者控制台没有报告任何错误.
如果我理解正确 - 一旦将值加载到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)
假设两个帧源共享同一个域,这应该可行.