• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

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

CatChen 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。
...全文
198 点赞 收藏 7
写回复
7 条回复
昵称都被占完求了 2005年03月16日
友情UP
回复 点赞
CatChen 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>
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告