如何动态改变form的target(指javascript下)?

cat_hsfz 2005-03-14 10:22:09
<script type="text/javascript">
<!--
var oIFrame=document.createElement('iframe');
oIFrame.id='myIFrame';
oIFrame.name='myIFrame';
document.appendChild(oIFrame); //这句仅为IE加上,根据DOM是不需要的,但IE就不行。

var oForm=document.createElement('form');
oForm.id='myForm';
oForm.name='myForm';
oForm.method='post';
oForm.action='Page.aspx';
oForm.target='myIFrame'; //这句不起作用,不知道怎样才能达到这个效果。
document.appendChild(oForm);

var oInput=document.createElement('input');
oInput.type='hidden'; //IE必须在创建input后马上修改type,又是一个对DOM的不完全支持
oInput.id='myInput';
oInput.name='myInput';
oInput.value='MyValue';
oForm.appendChild(oInput);

oForm.submit(); //使用的目标Frame不是myFrame,所以说上面的语句没起作用。
//-->
</script>

求一个能够兼容IE6和Firefox 1.0的解决方案,要求能够把动态创建的form的target指向动态创建的iframe。
...全文
324 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
友情UP
cat_hsfz 2005-03-15
  • 打赏
  • 举报
回复
saucer(思归) ,你的意思是问题出在oIFrame.name='myIFrame'失败了?

那么DOM里面是否有规定Frame的名称不能改动,或者需要用别的途径改动?因为连Firefox都不支持我上面的做法,应该就是违反了DOM的了。
simon0220 2005-03-15
  • 打赏
  • 举报
回复
document.oForm.target='';
zhangqiushui 2005-03-15
  • 打赏
  • 举报
回复
学习啊
saucer 2005-03-15
  • 打赏
  • 举报
回复
设置name应该是个简单的操作,但在IE上,好像setAttribute都不工作
lovelxj 2005-03-15
  • 打赏
  • 举报
回复
关键的就是
oForm.target='myIFrame';
saucer 2005-03-15
  • 打赏
  • 举报
回复
you should be using document.body.appendChild(...), but it is wierd, cannot set a name for IFRAME, but try the following

<html>
<head>
<script language="javascript" type="text/javascript">
<!--
function win_load()
{
/* var oIFrame=document.createElement('iframe');
oIFrame.id='myIFrame';
oIFrame.name='myIFrame';
document.body.appendChild(oIFrame);
*/

document.getElementById("mydiv").innerHTML = "<IFRAME name='myIFrame'></IFRAME>";

var oForm=document.createElement('form');

oForm.id='myForm';
oForm.name='myForm';
oForm.method='post';
oForm.action='http://www.microsoft.com';
oForm.target='myIFrame';
document.body.appendChild(oForm);

var oInput=document.createElement('input');
oInput.type='hidden';
oInput.id='myInput';
oInput.name='myInput';
oInput.value='MyValue';
oForm.appendChild(oInput);

//alert(document.body.outerHTML);
oForm.submit();
}
//-->
</script>
</head>
<body onload="win_load()">
<div id="mydiv"></div>
</body>
</html>

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧