在iframe中发布表单

时间:2010-06-08 21:00:19

标签: javascript html forms iframe post

我想在iframe中发布一个表单,生成方式如下:

我的JS在页面中加载iframe,向iframe添加一个表单并提交表单。我想要发生的是加载该请求结果的iframe。所以,我会有效地发布一个表单并将结果呈现在iframe 中,而不会触及父级(除了首先将iframe放在显示位置)。

我正在使用这个答案中的代码:

JavaScript post request like a form submit

但我无法让它重新加载父母。我发布了表单,而不是iframe刷新,整个父进行刷新。我不知道为什么会这样,因为它发布的网址是不同的,至少会重定向。

任何人都可以帮我解决这个问题吗?我只想在iframe内部发帖,基本上只在iframe内。

编辑:经过一些研究,显然表格没有正确创建。我正在使用document.createElement(“form”)然后使用document.getElementById(“my_iframe_id”)。appendChild(form)来附加它,但它似乎没有正常工作。

3 个答案:

答案 0 :(得分:7)

更正,因为您正在当前文档中创建表单节点。

document.getElementById("my_iframe_id").contentWindow.document.createElement('form'); 

在iframe中创建它。

答案 1 :(得分:1)

它现在有效,部分原因是“文档”错误,正如丹所说,另一部分是,当插入iframe时,需要使用document.getElementById(div).contentWindow.document.childNodes[0].appendChild(form)而不是{{1} }}

答案 2 :(得分:0)

不确定这会有多大帮助,但您指出的答案并没有给表单提供名称/ ID。如果您尝试使用document.getElementById('myForm').submit()之类的内容发布表单,则可能会出现问题,因为您的表单没有名称/ ID。

过去,当页面上有多个表单时,表单提交显然会提交错误的表单。在每种情况下,给表单一个名称/ id,然后通过id获取表单并调用submit()似乎解决了这个问题。