qingyuan914 发表于 2013-2-6 11:10:51

页面父子窗口的通信

当父窗口执行此方法:
function showWin(){
         var retValue=new Array();
         var url="/jsp/employee/employeeInfoList.jsp";
         retValue=window.showModalDialog(url,'','dialogHeight:400px;dialogWidth:600px');
         document.aform.employeeName.value=retValue;
         document.aform.employeeId.value=retValue;
         document.aform.team.value=retValue;
         document.aform.telephone.value=retValue;
         document.aform.costCenter.value=retValue;
}
后,将弹出路径为/jsp/employee/employeeInfoList.jsp的子窗口;
字窗口的程序:
function evalSave()  {
    var checks = getCheckedOnly(document.aform.chkIndex);
    var until = checks.length;
    for (var idx=0; idx < until; idx++) {
      selectRow(checks);
    } 
}
function getCheckedOnly(inputs) {
 var result = new Array();
 if (inputs && inputs.tagName == "INPUT" && inputs.checked) result = inputs;
 else if (inputs && inputs.length && inputs.length > 0 ) {
  var until = inputs.length;
  for (var idx=0; idx<until; idx++) {
   if (inputs.tagName == "INPUT" && inputs.checked) result = inputs;
  }
 }
 return result;
}
function selectRow(radio){
  var oTR = findParentTag(radio, "TR");
  var name = findTagByName(oTR, "input", "name").value;
  var nameCn = findTagByName(oTR,"input","nameCn").value;
  var employeeId = findTagByName(oTR, "input", "employeeId").value;
  var teamName = findTagByName(oTR, "input", "teamName").value;
  var email = findTagByName(oTR, "input", "email").value;
  var officeTel = findTagByName(oTR, "input", "officeTel").value;
  var tel = findTagByName(oTR, "input", "tel").value;
  var departmentName = findTagByName(oTR, "input", "departmentName").value;
  var gradeEn = findTagByName(oTR, "input", "gradeEn").value;
  var grade = findTagByName(oTR, "input", "grade").value;
  var costCenter=findTagByName(oTR, "input", "costCenter").value;
  var myArray=new Array();
  myArray=name;
  myArray=employeeId;
  myArray=teamName;
  myArray=email;
  myArray=officeTel;
  myArray=tel;
  myArray=departmentName;
  myArray=gradeEn;
  myArray=grade;
  myArray=nameCn;
  myArray=costCenter;
  returnValue = myArray;
  window.close();
}
function findParentTag(oTag, tagName) {
  while (oTag && oTag.tagName != "BODY") {
    if (oTag.tagName == tagName) return oTag;
    oTag = oTag.parentNode;
  }
  return null;
}
function findTagByName(oTag, tagName, name) {
 var tags = oTag.getElementsByTagName(tagName);
 for (var idx=0; idx<tags.length; idx++) {
  if (tags.name == name) return tags;
 }
  return null;
}
这样就把字窗口中选中的一条记录返回到父窗口中,并放到相应的input中。
页: [1]
查看完整版本: 页面父子窗口的通信