如何实现在不使用window.showModalDialog 的情况下用 window.open方式 向父窗口返回值。例如:
    页面A.htm 用 window.open方式弹出页面 B.htm 。
    在页面B.htm上选择一个值,确定关闭窗口后将选择的这个值返回到父窗口A.htm。
    A.htm得到返回的值后,给本页面上的文本框赋值。1.在A.htm里建一个函数:function sele(NO){ //NO为返回值
    alert(NO);//可以直接赋值给表单
     var re= new Array();//如果需返回多个变量,则采用数组把各个变量分开
     re=NO.split(",");
     form1.feild1.value=re[0];
     form1.feild2.value=re[1];//form1为本面表单名,feild1、2为表单元素
}<form name="form1" action="....">
  <input name="feild1">
  <input name="feild1">
</form>2.在B,htm 加以下代码
function re(NOre){
     window.opener.sele(NOre);
     window.close();"
}<form name="form1" action="....">
  <input type="button" value="返回值" onclick="re("把需返回的变量")">
</form>

解决方案 »

  1.   

    我在网上查了很多内容,都是不啥理想的,后来发现在子窗口中可以运行父窗口的函数,而且还可以给父窗口函数赋值,于是乎豁然开朗。其这利用这一功能完全可以取代window.showModalDialog的返回值的功能。而且利用数组,可以灵活地返回和分解多个变量,非常实用。
      

  2.   

    在子窗口中直接是用opener.document.getElementById('父窗口中控件ID')就可以顺利得到父窗体控件对象了。
      

  3.   

    可以这样啊 if(window.opener)window.opener.document.getElementById("theTextAreaId").value = value;-----------------------------------
    http://www.jiemengwu.com/ 解梦屋 http://www.phpzy.com/php/ 绿色php资源
      

  4.   

    opener 访问父窗口!可以在父窗口,定义一个方法,调用父窗口方法就可以了!传值,多个值可以用json!
      

  5.   

    opener.document.getElementById().value;
    最好用window.showModalDialog();可以传数组 子页面根据数组索引取值就可以了
    或者添加到对象中
    var obj={};
    obj.name="";
    obj.ID=01;
    获取
    var obj=window.dialogArguments;
    obj.name;
      

  6.   

    楼主是来散分的,我是来接分的,这种情况也可以用div模拟窗口来实现嘛
      

  7.   

    var obj=window.dialogArguments;
    -------------------------------
    if(window.opener)
    var obj=window.opener.document.getElementByiD("XXX");
    obj.value="xxx";
    ------------------------------
      

  8.   

    returnvalue把模态窗体的值传到父传体
      

  9.   

    window.open与window.showModalDialog、层(div)有其独特的优势,这里说的是window.open返回值。
       1.与window.open返回值有关的技巧请大家多多交流。
       2.与window.open返回值无关的就不必在这时交流了。
       3.另外,通过给父窗口表单或单元赋值获得的,也不必在这里交流,因为网上搜出很多这方面的例子。