这是我的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不存在。
答案 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才能正常工作。