使用 JavaScript 在 iframe 中提交表单 [英] Submitting a form in an iframe with JavaScript

查看:76
本文介绍了使用 JavaScript 在 iframe 中提交表单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

iframe 在同一个域中,我尝试了以下代码,但没有一个奏效:

The iframe is on the same domain, I tried the following code, but none of it worked:

 myframe.document.getElementById("myform").submit();
 parent.top.frames[0].document.forms[0].submit(); 
 myframe.document.getElementById("myform").submit();

 MyIFrame = document.getElementById("myframe");
 myIFrame.getElementById("myform").submit();

更新:

这是 HTML:

<html>
<body>
<iframe frameborder="0" scrolling="no" width="530" height="298"
  src="/iframe.php" name="myframe" id="myframe">
  <p>iframes are not supported by your browser.</p>
</iframe><br />

<form action="/styles.css" method="post" id="form1">
<input type="text" name="input1" value=""/>
<input type="text" name="input2" value=""/>
<input type="button" value="test" onclick="submitFrame()">
<input type="submit" value="submit">
</form>

<script>

function submitFrame(){

var MyIFrame = document.getElementById("myframe");
var MyIFrameDoc = (MyIFrame.contentWindow || MyIFrame.contentDocument);
if (MyIFrameDoc.document) MyIFrameDoc = MyIFrameDoc.document;
MyIFrameDoc.getElementById("myform").submit(); // ## error 

}


</script>   
</body>
</html>

iframe.php:

iframe.php:

<form method="post" class="af-form-wrapper" id="myform" name="myform" action="/"  >

<input type="text" name="input1" value="2073809442" />
<input type="text" name="input2" value="1" />
<input type="submit" name="submit" value="submit" />
    </form>

萤火虫说:

 MyIFrameDoc.getElementById("myform").submit is not a function

推荐答案

试试这个:

var MyIFrame = document.getElementById("myframe");
var MyIFrameDoc = (MyIFrame.contentWindow || MyIFrame.contentDocument);
if (MyIFrameDoc.document) MyIFrameDoc = MyIFrameDoc.document;
MyIFrameDoc.getElementById("myform").submit();

更新

我不知道为什么这不起作用,但这里有一些东西:

MyIFrameDoc.getElementById("mybutton").click();

iframe.php:

iframe.php:

<input type="submit" name="submit" value="submit" id="mybutton" />

更新 2

您收到 submit is not a function 错误的原因是因为您已将提交按钮命名为 submit,所以 MyIFrameDoc.getElementById("myform").submit 实际上引用了一个 HTMLInputElement,而不是 HTMLFormElement.submit() 方法.

The reason you're getting the submit is not a function error is because you've named your submit button submit, so MyIFrameDoc.getElementById("myform").submit actually references an HTMLInputElement, not the HTMLFormElement.submit() method.

您需要做的就是重命名提交按钮,例如:

All you need to do is rename your submit button, e.g.:

<input type="submit" name="submit2" value="submit" />

这篇关于使用 JavaScript 在 iframe 中提交表单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆