如何将元素附加到iframe表单?

时间:2014-11-30 17:35:05

标签: javascript html dom iframe

这是我的iframe代码

<iframe id='SoapExeFrame' src='' style='display:none'>
<form id='soapdatas' action='ps_dlgwnd_3.jsp' method="post">
</form>
</iframe>

我想在将请求提交到目标jsp页面之前附加一些表单元素,所以我写了下面的代码

var oInput = SoapExeFrame.document.createElement('INPUT');
oInput.name ="webservice/webservice";
oInput.value = valueofService;
SoapExeFrame.soapdatas.appendChild(oInput);

但是IE11正在抛出一个错误,指出soapdatas不存在。

1 个答案:

答案 0 :(得分:0)

获取iFrame文档与普通文档不同,这就是您可能遇到问题的原因。

var SoapExeFrame = document.getElementById('SoapExeFrame').contentDocument || document.getElementById('SoapExeFrame').contentWindow.document;

var oInput = SoapExeFrame.createElement('input');
oInput.name ="webservice/webservice";
oInput.value = valueofservice;
    //Append to the form
SoapExeFrame.getElementById('soapdatas').appendChild(oInput);

我在http://codepen.io中运行了这个,我发现iFrame没有包含表单,这是你可能无法使用它的另一个原因,因为它内部的数据是iFrame在那个浏览器中不起作用(我相信),你需要先对它进行排序然后javascript才能正常工作。