使用JavaScript在iframe中提交表单
使用JavaScript在iframe中提交表单,javascript,iframe,submit,Javascript,Iframe,Submit,iframe在同一个域中,我尝试了以下代码,但都不起作用: myframe.document.getElementById("myform").submit(); parent.top.frames[0].document.forms[0].submit(); myframe.document.getElementById("myform").submit(); MyIFrame = document.getElementById("myframe"); myIFrame.getE
iframe
在同一个域中,我尝试了以下代码,但都不起作用:
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>
试试这个:
var MyIFrame = document.getElementById("myframe");
var MyIFrameDoc = (MyIFrame.contentWindow || MyIFrame.contentDocument);
if (MyIFrameDoc.document) MyIFrameDoc = MyIFrameDoc.document;
MyIFrameDoc.getElementById("myform").submit();
更新
我不明白为什么这不起作用,但这里有一些东西起作用:
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>
<input type="submit" name="submit" value="submit" id="mybutton" />
从javascript提交Iframe的URL
if (window.parent.$("#IframeId").length > 0) {
window.parent.$("#IframeId")[0].contentDocument.forms[0].submit();
}
您不需要发布到iframe中。您可以使用普通的空白“可见”窗口。如下定义您的表单:
var request = document.createElement("FORM")
request.id = "request"
request.name = "request"
request.action = "callYour.php"
request.method = "POST"
request.target = "_blank"
在php中,完成后只需通过以下方式关闭窗口:
window.close();
在HTML部分中,或在嵌入的脚本标记中。新窗口暂时打开,但完成后会自动关闭。谢谢!我在提交()时出错;我用代码更新了我的帖子:)谢谢,我在按钮上添加了id和名称,但是我得到了MyIFrameDoc.getElementById(“mybutton”)是null@Kristian您是否向父页面或iframe上的按钮添加了
id
,因为您应该将其添加到iframe页面上的按钮。另外,请确保您已将提交事件更改为单击事件。我是个笨蛋:p我在页面上添加了它,而不是在iframe上,现在它工作得很好,非常感谢!
if (window.parent.$("#IframeId").length > 0) {
window.parent.$("#IframeId")[0].contentDocument.forms[0].submit();
}
var request = document.createElement("FORM")
request.id = "request"
request.name = "request"
request.action = "callYour.php"
request.method = "POST"
request.target = "_blank"
window.close();