首先你要看看这两个页面是否跨域.tempI=self.opener.document.forms[0].researchItem.options.length; //这里
var tempOption=new Option();
self.opener.document.forms[0].researchItem.options[tempI]=tempOption;
var tempOption=new Option();
self.opener.document.forms[0].researchItem.options[tempI]=tempOption;
执行后tempI=0
问题在这里:
self.opener.document.forms[0].researchItem.options[tempI]=tempOption;
self.opener.document.forms[0].testText.value="showerxp"也没有事,就是对象传值出问题。看来只能把值传回到opener再new Option了。感觉不爽。
--------------------------------------------------------^
父窗口:
<form name=form1>
<select name=parentList>
<option>请选择
</select>
</form>
<script language=javascript>
function writeParentList(str)
{
if(str=="") return;
if(document.form1.parentList)
{
e = document.form1.parentList;
var newOP=new Option(str, str, true, true);
for(var i=0; i<e.options.length; i++) //不重复
if(e.options[i].value == str) return;
e.options[e.options.length] = newOP;
}
}
</script><input type=button value=ok onclick="window.open('ttt.htm','meizz')">
子窗口:
<select onchange="if(window.name!='')opener.writeParentList(this.value)">
<option>请选择
<option value=aaa>aaa
<option value=bbb>bbb
<option value=ccc>ccc
<option value=ddd>ddd
<option value=eee>eee
</select>
我的问题解决了,不过代码没有你的那么漂亮。js平时写的不多(主要是我人懒),没有想到就是在“不多”的情况下碰到了ie不支持的东西。程序是改别人的,在netscape下的就没事。帖子先不结看看还有没有大虾有好办法。噢哦噢哦噢哦!