Kri*_*ian 14 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.getElementById("myform").submit();
Run Code Online (Sandbox Code Playgroud)
更新:
这是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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
萤火虫说:
MyIFrameDoc.getElementById("myform").submit is not a function
Run Code Online (Sandbox Code Playgroud)
Kor*_*lum 16
试试这个:
var MyIFrame = document.getElementById("myframe");
var MyIFrameDoc = (MyIFrame.contentWindow || MyIFrame.contentDocument);
if (MyIFrameDoc.document) MyIFrameDoc = MyIFrameDoc.document;
MyIFrameDoc.getElementById("myform").submit();
Run Code Online (Sandbox Code Playgroud)
UPDATE
我无法弄清楚为什么这不起作用,但这是做的事情:
MyIFrameDoc.getElementById("mybutton").click();
Run Code Online (Sandbox Code Playgroud)
iframe.php:
<input type="submit" name="submit" value="submit" id="mybutton" />
Run Code Online (Sandbox Code Playgroud)
更新2
您收到submit is not a function错误的原因是您已经命名了提交按钮submit,因此MyIFrameDoc.getElementById("myform").submit实际引用了一个HTMLInputElement而不是HTMLFormElement.submit()方法.
您需要做的就是重命名提交按钮,例如:
<input type="submit" name="submit2" value="submit" />
Run Code Online (Sandbox Code Playgroud)