问题如下:jsp页面: A.jsp, B.jsp ,A.jsp是父页面主要操作: 由页面的选择情况在父页面和子页面之间双向传值如: 在B.jsp中有A,B,C,D, 选了一个D后,A.jsp中值就是 D,再次点按钮选择时,B.jsp页面的D为初始化选中在A.jsp中使用 open 打开子页面 B.jsp, 然后点B.jsp的 ”确定 “ 后,调用B.jsp页面上的js函数 fillParent()在fillParent()我进行的操作是根据B.jsp页面的一系列选择情况来创建一个js对象来保存选中的值,然后调用了A.jsp页面上的js函数fillSelectedInfo, window.opener.fillSelectedInfo(a),出现错误就是,这个操作只能进行一次,即第一次进行选择的时候,以后第二次,第三次,就不行了...报的错误是: 找不到页面元素返回为空(第一次的时候不会),不知道是那里错了(超郁闷),我怀疑是页面的加载问题,请高手帮忙出出建议...

解决方案 »

  1.   

    子页面调用父页面里面的对象的方法是:
    opener.document.xxxx
    执行父页面的函数:
    opener.xxx()
      

  2.   


    没有解决啊。。
    就是出现我所说的很奇怪的问题啊...
    郁闷中...更让我抓狂的是:
    父页面上显示出来的是:A(数据库中的值)
    在第一次选择的时候选了D后,父页面上显示是: D
    在查看源文件的时候,父页面的值竟还然是: A ,可已经显示出来了啊??
    对js还是不了解啊... 
      

  3.   

    A.jsp:
    var _s = null;
    function _ss()
    {
    alert(_s);
    }
    window.open('b.jsp','newWindow');B.jsp:
    window.opener._s = Math.random()*100;
    window.opener._ss();
      

  4.   


    没有啊,我在这两个页面进行的操作都只是修改 input的value,没有进行对元素的增删操作..
      

  5.   

    父页面<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Parent</title>
    </head>
    <body>
      <input id="Text1" type="text" />
        <input id="Button1" type="button" value="Parent" onclick="window.open('children.htm')" />
    </body>
    </html>子页面<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Child</title>
        <script type="text/javascript">
        function Open()
        {
            window.opener.document.getElementById("Text1").value=document.getElementById("Text2").value;
          window.close();
        }
        </script>
    </head>
    <body>
           <input id="Text2" type="text" />
        <input id="Button2" type="button" value="Child" onclick="Open()" />
    </body>
    </html>
      

  6.   

    查看动态的变更应该用 firebug, ie developer, 等工具, 而不是查看源文件.
    估计第二次找不到元素主要是元素的变更, eg. html struture 变了, id 变了, 或 撞了id等 原因.
    建议用 firebug 看看, 第一次变更后元素的状况
      

  7.   

    找不到页面元素返回为空(第一次的时候不会)难道是第二次开始就window.opener对象就不存在了?
      

  8.   

    朋友们,我都快哭死了,是一个底级错误导致的....原因如下:
    [code]
    <td id="tdselect">
    <input type="hidden" id="select" value="XXXX"/>
    ${XXX}
    <td>
    [/code]我在选行 document.getElementById("select").value = XXX;
    前先进行了一个这样的操作
    document.getElementById("tdselect").innerHTML=XXX;
    所以把隐藏域的内容给冲掉了
    我都快哭死了,耽误了我好长时间啊。。
    以后再也不把隐藏域乱放了要集中放在一处大家这这些方面还有什么好建议啊 ? 也可帮助减少类似我这种 低级错误的。。
    希望指点一二