可以直接用脚本, parent.otherFrameName.document.formName.inputName.value 访问目标页面
也可以使用服务器端的session,也可以使用客户端的cookie,当然也可以通过表单或者URL挂尾把信息传加目标页面

解决方案 »

  1.   

    楼上的理解错误啦。在DataGrid里面有个隐藏列是保存ID号,还有个摸板列是checkbox,在前台写了javascript代码,可以全部选择或单个选择checkbox,选择后需要把ID值传递到parent.xx里面去,现在是值传递不了,用的是框架集。
      

  2.   

    梅老大说的很清楚了,
    1 如果是通过提交  用URL挂尾和隐藏控件
      window.open("parent.do?id=asdf&checkValue=asdf","","") or 
        <input type="hidden" name="id" value="选中的id">
      ..
    2 不通过提交
       通过URL挂尾可传到子画面;在自画面可以用parent.otherFrameName.document.formName.inputName.value 访问父画面的植下面是2的例子
    JS1.html:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <script language="javascript">
    function edit(a){
    alert("111");
    var aa=table1.rows[a].cells[0].innerHTML;
    var b=table1.rows[a].cells[1].innerHTML;
    var c=table1.rows[a].cells[2].innerHTML;
    var d=table1.rows[a].cells[3].innerHTML;
    var e=table1.rows[a].cells[3].innerHTML;
    alert(a);
    var m=window.open("./JS2.html?a="+aa+"&b="+b+"&c="+c+"&d="+d+"&e="+e,"","");
    }
    function func2(){
    alert("???");
    alert(document.getElementsByName("aaa1")[0].value);
    }
    </script>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    </HEAD><BODY >
    <table border=1 id="table1">
        <caption>一(1)班成绩单</caption>
        <tr>
            <th>学号<th>姓名<th>语文<th>数学<th>英语<th>
        </tr>
        <tr>
            <td>01<td>aaa<td>11<td>22<td>33<td><input type=button value="编辑"   name="edit" onClick="edit(1);"/>
        </tr>
        <tr>
            <td>02<td>bbb<td>44<td>55<td>66<td><input type=button value="编辑" name="edit" onClick="edit(2);"/>
        </tr>
        <tr>
            <td>03<td>ccc<td>77<td>88<td>99<td><input type=button value="编辑"   name="edit" onClick="edit(3);"/>
        </tr>
    <input type=hidden name="aaa1">
    <input type=button value="编辑getHidden"   name="edit1" onClick="func2();"/>
    </table>
    </BODY>
    </HTML>JS2.html:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <script language="javascript">
    function func1(){
    alert("111");
    var c=location.search.toString().split('?').pop();
    var d=c.split("&");
    document.getElementsByName("name")[0].value=d[1].split("=")[1];
    document.getElementsByName("China")[0].value=d[2].split("=")[1];
    document.getElementsByName("Maths")[0].value=d[3].split("=")[1];
    document.getElementsByName("English")[0].value=d[4].split("=")[1];
    }
    function func2(){
    var a=document.getElementsByName("name")[0].value;
    alert(a);
    try{
    window.opener.document.getElementsByName("aaa1")[0].value=a;
    alert(window.opener.document.getElementsByName("aaa1")[0].value);
    alert("right");
    }catch(e){
    alert(e.toString());
    alert("ERR");}
    window.opener.location.reload();window.close();
    }
    </script>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    </HEAD><BODY onload="func1()">
    <table border=1 >
    <input type="text" type="hidden" name="serialNo"><br/>
    姓名: <input type="text" name="name"><br/>  
    语文: <input type="text" name="China"><br/>
    数学: <input type="text" name="Maths"><br/>
    英文: <input type="text" name="English"><br/>
    <br/>
    <input type="button" value="Save" onclick="func2()">
    </table>
    </BODY>
    </HTML>
      

  3.   

    首先非常感谢2位的热心帮助,我实在是愚笨,你这个例子用的是URL挂尾,按照你们的说法,我把js1.htmlfunction edit(a)中的var m=window.open("./JS2.html?a="+aa+"&b="+b+"&c="+c+"&d="+d+"&e="+e,"","");一行去掉,然后在js2.html中function func1()处的document.getElementsByName("name")[0].value=d[1].split("=")[1];
    改成document.getElementsByName("name")[0].value=parent.body.document.Form1.table1.rows[1].cells[0].innerHTML.value;运行后系统会报错:‘parent.body.document.Form1.table1’为空或不是对象!
      请多多指点小弟吧!谢谢!
      

  4.   

    忘记说明了,上面的回复中,主页面有部分是这样的:
      <frameset frameSpacing="5" rows="*,168">
    <frame name="body" src="js1.html">
    <frame name="form" src="js2.html" frameBorder="0" scrolling="no">
    </frameset>
      

  5.   

    alert(parent)
    alert(parent.body)
    alert(parent.body.document)
    alert(parent.body.document.Form1)
    .....
    看看哪个不存在或为空
      

  6.   

    name="body1" 
    name="form1"
    别用特殊的
      

  7.   

    按照楼上的测试方法,在alert(parent.body1.document.Form1)中报出了undefined,前面的都是报[object], 但是我在js1.html中有<form id="Form1" method="post" runat="server">语句呀!!
      

  8.   

    parent.otherFrameName.document.formName.inputName.value  
     这句话上网也搜不到东西,郁闷!!
      

  9.   


    parent.otherFrameName.document.formName.inputName.value 
    parent是指当前窗口的上级窗口,也就是包含这个窗口所在html文件的html文件
    parent.otherFrameName 即指当前窗口的父窗口中的其他frame窗口,即和当前窗口为兄弟窗口
    后面即指兄弟窗口中的一个form中的一个text 框的值。
    即parent.otherFrameName.document.formName.inputName.value=“test”给 那个文本框赋值。
    比如1.html 有
    <body>
    <iframe name=frame1 src='frame1.htm'></iframe>
    <iframe name=frame2 src='frame2.htm'></iframe>
    </body>
    这样的代码
    1.htm 为frame1和frame2的praent窗口,而frame1.和frame2为兄弟窗口。这个是根据文档对象 模型来。
    parent.otherFrameName.document.formName.inputName.value  这段代码只式举个例子,一般网页没有完全一样的代码,你当前很难搜:)