在一个界面上top.Dialog.open("{...}");打开一个模式窗口,再其模式窗口上在打开一个top.Dialog.open("{...}"),请总在这2个窗口将怎么传值?第二个模式窗口是一棵树,选择一个节点传到值到第一个模式窗口的表单上?top.Dialog.open();这种写法,以前没看到过,在里面获取不到opener.

解决方案 »

  1.   

    如果开的是浮层可以直接试试  document.getElementById(aa) aa是第一个dialog中的文本框的id如果开的是页面  window.parent
      

  2.   

    如果你用的是artDialog,那么不要用top去open详细做法,在需要进行数据交互两的子窗口和父窗口都引用artDialog、iframeTools两个文件,在父窗口用art.dialog.open打开子窗口,然后子窗口获取值之后需要传回父窗口采用 
    artDialog.open.origin.document.getElementById('父窗口ID').value = '值';
      

  3.   

    我今天也遇到了,我使用的是:top.Dialog.open()....,结果获取到的window.opener为null
      

  4.   

     function openClass(){
             var diag = new top.Dialog();
         diag.Width = 800;
         diag.Height = 600;
         diag.Title = "选择培训班";   
         diag.URL = "controls/ClassSingleSelect.php";
         diag.OKEvent = function(){
         var row= diag.innerFrame.contentWindow.row;
         if(row){
    $("#ClassName").text(row.ClassName);
    $("#TrainingDate").text(row.TrainingDate);
    $("#ClassID").val(row.ClassID);
    $.post("../business/OutstandingStudentsBLL.php?type=selectByClassID",{ClassID:row.ClassID},function(data){
    if(data){
    var $tbody = $("#table>tbody");
    $tbody.empty()
    for(var i=0;i<data.length;i++){
    var item = data[i];
    $tbody.append("<tr><td><input type='checkbox'/></td><td><span>"+item.FullName+"</span><input type='hidden' name='UserID[]' value='"+item.UserID+"' /></td><td><input type='text' name='Leader[]' value='"+item.Leader+"'/></td><td>"+item.Company+"</td><td><input type='text' name='SelectionReason[]' value='"+item.SelectionReason+"'/></td></tr>");
    }

    }
    diag.close();
    },'json')

         }
       };
         diag.show();
            }