父窗口:
<form name=form1>
<select name=parentList>
<option>请选择
</select>
</form>子窗口:
<select onchange="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><script language=javascript>
function writeParentList(str)
{
   if(top==window) return; //若该页没有被 frame 则跳出
   if(str=="") return;
   if(parent.document.form1.parentList)
   {
        e = parent.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>

解决方案 »

  1.   

    父窗口:
    <form name=form1>
    <select name=parentList>
    <option>请选择
    </select>
    </form>
    <script language=javascript>
    function writeParentList(str)
    {
       if(top==window) return; //若该页没有被 frame 则跳出
       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>子窗口:
    <select onchange="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>
      

  2.   

    呵呵, 瓜瓜, 你的代码你自己有没有测试过呀!!
    在父窗口你竟然还保留着 if(top==window) return; 所以你抄的代码不会很好执行
    在子窗口里应该加上一个判断: 若子窗口不是被open出来的话你用opener对象会出错的.
    所以我建议你在看代码的时候多消化消化, 不要想当然的写代码, 且写完后一定要自己测试通过才可以拿出来.父窗口:
    <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>
      

  3.   

    父窗口:
    <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>
      

  4.   

    TO meizz(梅花雨)
     var newOP=new Option(str, str, true, true);
    后两个参数什么意思呀