请问在js里面如何动态的创建一个iframe?
请问在js里面如何动态的创建一个iframe,并把一个ListBox连同ListBox里面的值添加到iframe。
非常感谢!!!
问题点数:100、回复次数:26Top
1 楼ttyp(@http://www.cnblogs.com/ttyp/)回复于 2005-05-05 09:08:31 得分 15
var frm = document.createElement("iframe");
document.body.appendChild(frm);
frm.document.write(yourhtml);Top
2 楼luckyprg(lucky)回复于 2005-05-05 09:09:58 得分 2
上面已讲出正确答案,我就JF好了。Top
3 楼bearthepalm()回复于 2005-05-05 09:11:00 得分 0
谢谢ttyp(@http://www.cnblogs.com/ttyp/)!
可是要把ListBox里面各个选项的值添加到iframe,要怎么做呢?Top
4 楼bearthepalm()回复于 2005-05-05 09:11:36 得分 0
谢谢luckyprg(lucky)!Top
5 楼xiaomaolover(小M)回复于 2005-05-05 09:15:24 得分 5
可是要把ListBox里面各个选项的值添加到iframe,要怎么做呢?
可以传值给Iframe的页面.
Top
6 楼bearthepalm()回复于 2005-05-05 09:18:41 得分 0
thanks to xiaomaolover(笨 笨) :
请问要怎么传呢?Top
7 楼bearthepalm()回复于 2005-05-05 09:35:21 得分 0
ListBox不可以用appendChild的形式添加到iframe吗?Top
8 楼hchxxzx(NET?摸到一点门槛)回复于 2005-05-05 09:36:46 得分 15
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<select name="listbox1" size="4" multiple>
<option value="sdgs">sdg</option>
<option value="sg">sdg</option>
<option value="sdg">sdg</option>
</select>
</BODY>
</HTML>
<SCRIPT LANGUAGE="JavaScript">
<!--
var frm = document.createElement("iframe");
document.body.appendChild(frm);
var ifram = document.frames[0];
ifram.document.write("这是动态生成的<br>");
frm.document.write("这是动态生成的");
var listbox = document.all("listbox1")
for(var i=0;i<listbox.length;i++)
{
ifram.document.write(listbox[i].value + "<br>");
}
//-->
</SCRIPT>Top
9 楼bearthepalm()回复于 2005-05-05 09:50:50 得分 0
感谢hchxxzx(NET?摸到一点门槛)!Top
10 楼dreamy835(风雨)回复于 2005-05-05 09:56:58 得分 2
呵呵 我跑来学习下Top
11 楼bearthepalm()回复于 2005-05-05 11:18:44 得分 0
要再麻烦一下hchxxzx(NET?摸到一点门槛)啊!
这样创建的iframe要怎样显示和隐藏呢?
用document.all.ifram.style.display=''; 或者用document.all.frm.style.display='';
电脑的提示是:“document.all.ifram.style为空或不是对象”
‘document.all.frm.style为空或不是对象‘
谢谢啦!Top
12 楼hunter_32(曠野裡奔嘯的狼)回复于 2005-05-05 11:23:35 得分 0
學習加接分
Top
13 楼ttyp(@http://www.cnblogs.com/ttyp/)回复于 2005-05-05 11:50:48 得分 5
你没给iframe命名,注意要id,name都要设置Top
14 楼hchxxzx(NET?摸到一点门槛)回复于 2005-05-05 12:31:45 得分 15
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<select name="listbox1" size="4" multiple>
<option value="sdgs">sdg</option>
<option value="sg">sdg</option>
<option value="sdg">sdg</option>
</select>
<input type=button value=button1 name=button1 onclick="f();">
</BODY>
</HTML>
<SCRIPT LANGUAGE="JavaScript">
<!--
var frm = document.createElement("iframe");
frm.id = "frm1";
frm.name = "frm1";
document.body.appendChild(frm);
var ifram = document.frames[0];
ifram.document.write("这是动态生成的<br>");
frm.document.write("这是动态生成的");
var listbox = document.all("listbox1")
for(var i=0;i<listbox.length;i++)
{
ifram.document.write(listbox[i].value + "<br>");
}
function f()
{
var mydisplay = document.all("frm1").style.display;
if(mydisplay == "none")
{
document.all("frm1").style.display = "block";
}
else
{
document.all("frm1").style.display = "none";
}
}
//-->
</SCRIPT>
Top
15 楼bearthepalm()回复于 2005-05-05 12:58:42 得分 0
谢谢hchxxzx(NET?摸到一点门槛)和ttyp(@http://www.cnblogs.com/ttyp/) !Top
16 楼bearthepalm()回复于 2005-05-05 13:54:44 得分 0
thanks a lot to hchxxzx(NET?摸到一点门槛):
可能是我真的太菜啦。运行您给的代码时:
frm.document.write("这是动态生成的");这句是在一个新的页面里打印出"这是动态生成的",
而我想要在本页面里面显示出来。
而ifram.document.write("这是动态生成的<br>");和
var listbox = document.all("listbox1")
for(var i=0;i<listbox.length;i++)
{
ifram.document.write(listbox[i].value + "<br>");
}
运行后却只是显示一个空的iframe,并没有把ListBox中的项显示出来。
这两句 document.all("frm1").style.display = "block";
document.all("frm1").style.display = "none";
运行的时候电脑会提示:缺少对象
谢谢!Top
17 楼bearthepalm()回复于 2005-05-05 14:57:11 得分 0
to hchxxzx(NET?摸到一点门槛):
其实我的目的是不要让ListBox被DropDownList挡住啦。
我用textbox和listbox结合做了一个复合控件,有的时候当显示ListBox的时候,会被dropdownlist挡住,所以就想到了iframe,如果不用iframe,可以有其它的办法吗?Top
18 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-05-05 15:05:03 得分 2
你是要组合做一个combobox吧?Top
19 楼bearthepalm()回复于 2005-05-05 15:27:59 得分 0
谢谢hackate(^-^兰心-寒 超级苯苯!因为我笨,所以我很快乐!) !
是的!Top
20 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-05-05 15:40:38 得分 5
http://community.csdn.net/Expert/topic/3930/3930256.xml?temp=.9410822
呵呵。那何必那么痛苦呢,人家都做出的,听说效果不错,个人没用过啦,你看看Top
21 楼bearthepalm()回复于 2005-05-05 15:47:00 得分 0
谢谢hackate(^-^兰心-寒 超级苯苯!因为我笨,所以我很快乐!)!!
不过那个我早就试过啦,觉得不怎么好用。
不知道在js里面能不能动态的创建一个object对象,然后把ListBox附加到上面,如果可以的话,就不会被dropdownlist挡住啦。Top
22 楼cat_hsfz(我的新Blog在http://cathsfz.cnblogs.com)回复于 2005-05-05 23:53:10 得分 30
创建iframe的标准做法是document.createElement('iframe'),但是IE6存在一个巨大的漏洞,就是这创建出来的iframe无法修改他的name。所以这样做,还不如:
tempDiv = document.createElement('div');
document.body.appendChild(tempDiv);
tempDiv.innerHTML='<iframe><!--iframe content here--></iframe>';
至于你所要的iframe和select的HTML代码应该没问题了吧,那就填到上面innerHTML的部分。Top
23 楼bearthepalm()回复于 2005-05-06 19:56:09 得分 0
多谢cat_hsfz()!Top
24 楼bearthepalm()回复于 2005-05-06 19:57:31 得分 0
回头去试试!Top
25 楼Pipiloo(皮皮鲁)回复于 2005-05-06 20:17:09 得分 2
markTop
26 楼xueqs()回复于 2005-05-06 20:27:24 得分 2
markTop




