js 引用 iframe 表单并提交问题

<!doctypehtml><html><head><metacharset="gb2312"/><title></title><scripttype="text/jav... <!doctype html>
<html>
<head>
<meta charset="gb2312"/>
<title></title>
<script type="text/javascript" src="prettify-min.js"></script>
<script type="text/javascript">
//子页面1路径
var url1 = 'iframe.html';
//iframe尺寸
var iframeWidth = 180;
var iframeHeight = 38;
var frameborder = 0;

function f_click() {
document.window.frames['loginFrame'].document.forms["form1"].submit();
document.window.frames[0].document.forms["form1"].submit();
document.window.frames['loginFrame'].window.document.form.submit();
document.window.frames[0].window.document.form.submit();
document.window.frames['loginFrame'].window.document.forms["form1"].submit();
document.window.frames[0].window.document.forms["form1"].submit();
//iframe里有个name="form1"的表单,以上引用全错哦!请纠正哇
}

window.onload = function() {
if (typeof window.postMessage == 'undefined') {
var div = document.createElement('div');
div.innerHTML = '欢迎你的到来!';
document.body.innerHTML = '';
document.body.appendChild(div);
return;
}
createIframe(url1);
f_click();
};
/**
*
*创建子iframe
*/
function createIframe(url){
var iframe = document.createElement('iframe');
iframe.src = url;
iframe.name = 'loginFrame';
iframe.width = iframeWidth;
iframe.height = iframeHeight;
iframe.frameborder = frameborder;
iframe.style.border = 'solid black 1px;';
document.getElementById("main").appendChild(iframe);
}
</script>

</head>
<body>
<div id="header" class="clearfix">
<div id="logo" class="l">logo</div>
<div class="l mar-t5">
<h2>js 引用 iframe 表单并提交问题</h2>
</div>
</div>
<div id="main" style="margin-top:10px;">
</div>
</body>
</html>
展开
 我来答
缓步莫迟疑C
2011-12-08 · TA获得超过1.1万个赞
知道大有可为答主
回答量:6217
采纳率:73%
帮助的人:6515万
展开全部
试试这样用
document.getElementsByName('loginFrame')[0].contentWindow.document.getElementsByName('form1')[0].submit();
当然,如果是跨域调用的话肯定是不行的, 不跨域的话, 是可以的.
追问
调用的页面是本站页面,FORM提交网址是跨域。

document.getElementsByName('loginFrame')[0].contentWindow.document.getElementsByName('form1')[0].submit();
不行,去掉[0]后还是不行。
错误: 'document.getElementsByName(...).contentWindow.document' 为空或不是对象
追答
语法上没有错误,只是函数调用时机上的错误. 因为你在创建了IFRAME对象以后立即调用了f_click(), 显然这时IFRAME还没完成对页面的加载, 这时框架页的的document对象可能还不完整,甚至还没有被创建.这时就直接去调用它的属性或方法肯定是要失败的.
你可以做一下延时,或给IFRAME绑定onload事件,由该事件函数来调用f_click(),这样就可以了.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式