首先你要看看这两个页面是否跨域.tempI=self.opener.document.forms[0].researchItem.options.length; //这里
var tempOption=new Option();
self.opener.document.forms[0].researchItem.options[tempI]=tempOption;

解决方案 »

  1.   

    tempI=self.opener.document.forms[0].researchItem.options.length
    执行后tempI=0
    问题在这里:
    self.opener.document.forms[0].researchItem.options[tempI]=tempOption;
    self.opener.document.forms[0].testText.value="showerxp"也没有事,就是对象传值出问题。看来只能把值传回到opener再new Option了。感觉不爽。
      

  2.   

    self.opener.document.forms[0].researchItem.options[tempI-1]=tempOption;
    --------------------------------------------------------^
      

  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.   

    谢谢(黄蓉) 妹子捧场。
        我的问题解决了,不过代码没有你的那么漂亮。js平时写的不多(主要是我人懒),没有想到就是在“不多”的情况下碰到了ie不支持的东西。程序是改别人的,在netscape下的就没事。帖子先不结看看还有没有大虾有好办法。噢哦噢哦噢哦!