这里有问题opener.document.all.sel_option_1.options[i] = new Option(dayArray1[i].text, dayArray1[i].value);你原来的select对象里的options集合是空的,不能直接赋值。语法好像也有问题。
应该是:
var oOption = document.createElement("OPTION");
opener.document.all.sel_option_1.options.add(oOption);
oOption.innerText = "Two";
oOption.value = "2";

解决方案 »

  1.   

    问题是这句便已经执行不下去了
    opener.document.all.sel_option_1.options.add(oOption);
    ////////////////////////////////////////
    kjk_pop.html
    <script language="javascript">
    <!--
      if (window.opener) {
        var oOption = document.createElement("OPTION");
        opener.document.all.sel_option_1.options.add(oOption);
        alert("OK");<--这句以后就没有办法执行下去,不知道为何?
        oOption.innerText = "a1";
        oOption.value = "a12";
        alert(oOption.innerText);
        alert(oOption.value);
     }
    -->
    </script>
      

  2.   

    刚才没有太仔细看,不好意思。
    你的程序有几个问题:
    1.function fnc_OpenPop() {
        subWin = window.open("kjk_pop.html", "window1", "width=0, height=0,  scrollbars=1, resizable=1");
        document.main.submit();
      }
      这里,你打开窗口后就提交表单了,建议不要这样做。因为这样你无法保证你在修改父窗口时父窗口里还是表单的页面(可能已被提交了)
    2.在子窗口里不能修改父窗口对象的属性,这好像是安全方面的考虑。建议在父窗口中提供添加option的函数,自窗口调用父窗口的函数添加option.-------kjk_test.html-----
    <HTML>
    <HEAD>
    <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=gb2312">
    <TITLE>HELLO WORLD</TITLE>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
      function fnc_Submit() {
        document.main.submit();
      }
      function fnc_OpenPop() {
        subWin = window.open("kjk_pop.html", "window1", "width=0, height=0, scrollbars=1, resizable=1");
    /************************不要在这里提交**************************/
        //document.main.submit();
      }
    /***********************提供添加option函数 begin******************/
      function addOption(oSelect,OptionTest,OptionValue){
       var oOption = document.createElement("OPTION");
    oSelect.add(oOption);
    oOption.innerText = OptionTest;
    oOption.value = OptionValue;
      }
    /***********************提供添加option函数 end******************/
    //-->
    </SCRIPT>
    </HEAD>
    <BODY>
    <FORM ACTION="szh_test.php" TARGET="_self" NAME="main" METHOD="post">
      <select name="sel_option" onchange="javascript:fnc_OpenPop();">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
      </select>
      <!-- OPTION 1 -->
      <select name="sel_option_1">
      </select>  <!-- OPTION 2 -->
      <select name="sel_option_2">
      </select>  <!-- OPTION 3 -->
      <select name="sel_option_3">
      </select>  <!-- OPTION 4 -->
      <select name="sel_option_4">
      </select>
    </FORM>
    </BODY>
    </HTML>----------------------------------------------------------------------------
    kjk_pop.html<script language="javascript">
    <!--
      if (window.opener) {
        var dayArray1 = new Array(4);
        var dayArray2 = new Array(4);
        var dayArray3 = new Array(4);
        var dayArray4 = new Array(4);
        for (i = 1; i <= 4; i++) {
          dayArray1[i-1] = new Option("a" + i, "a" + i);
          dayArray2[i-1] = new Option("b" + i, "b" + i);
          dayArray3[i-1] = new Option("c" + i, "c" + i);
          dayArray4[i-1] = new Option("d" + i, "d" + i);
        }
        for (i = 0; i < 4; i++) {
    /**********************这里改调用父窗口的函数添加option begin**************/
      opener.addOption(opener.document.all.sel_option_1,dayArray1[i].text,dayArray1[i].value);
          opener.addOption(opener.document.all.sel_option_2,dayArray2[i].text,dayArray2[i].value);
          opener.addOption(opener.document.all.sel_option_3,dayArray3[i].text,dayArray3[i].value);
          opener.addOption(opener.document.all.sel_option_4,dayArray4[i].text,dayArray4[i].value);
    /**********************这里改调用父窗口的函数添加option end**************/
        }
    /****************现在再提交表单,以确保执行的先后顺序 begin***************/    
        opener.main.submit();
    /****************现在再提交表单,以确保执行的先后顺序 end***************/    
        opener.focus();
        window.close();
      }
    -->
    </script>