本帖最后由 Maggie5851 于 2012-07-12 10:46:41 编辑

解决方案 »

  1.   

    window.opener.document.getElementById('organID').value = idvalue
      

  2.   

    这段代码看着没问题,你是不是opener对象丢失了后者你弹出窗口的时候把opener置成null了?
      

  3.   

    没有置成null,这段代码是一开始我在其他页面使用的,一直没有问题,我就新做了这两个页面之后,就出现问题了,感觉有点莫名其妙的
      

  4.   

    什么意思?我对javascript实在是有点头大,特别是碰到这种为空或不是对象的问题
      

  5.   


    function OrganTreeByPath(path, organIDElement, organNameElement) {
          var url = path + "SelectOrgan.aspx";
          url += "?organID=" + document.getElementById("<%=organID.ClientID%>").value;
          url += "&organIDElement=" + organIDElement;
          url += "&organNameElement=" + organNameElement;
          var left = (window.screen.width - 280) / 2;
          var top = (window.screen.height - 430) / 2;
          window.open(url, null, "width=280,height=430,top=" + top + ",left=" + left);这是A页面打开新窗口的页面function SelectNode(idvalue, namevalue) {
        document.getElementById("tbIDValue").value = idvalue;
        document.getElementById("tbNameValue").value = namevalue;
        btnOK_onclick();
      }
      function btnOK_onclick() {
        var OpenerID = document.getElementById("tbOpenerID").value;
        var OpenerName = document.getElementById("tbOpenerName").value;
        var idvalue = document.getElementById("tbIDValue").value;
        var NameValue = document.getElementById("tbNameValue").value;
        var SelectAll = document.getElementById("tbSelectAll").value;
        if (SelectAll == "" && idvalue == "") {
          if (confirm("选择所有机构吗?")) {
            window.opener.document.getElementById(OpenerID).value = idvalue
            window.opener.document.getElementById(OpenerName).value = NameValue;
            window.close();
          }
          else {
            alert("必须选择一个机构");
          }
        }
        else {
          window.opener.document.getElementById(OpenerID).value = idvalue
          window.opener.document.getElementById(OpenerName).value = NameValue;
          window.close();
        }
      }这是B页面的javascript函数页面代码就不贴了,太长了,标红的地方就是一直在提示为空或不是对象的地方
      

  6.   

    window.opener.document.getElementById(OpenerID).value = idvalue
    window.opener.document.getElementById(OpenerName).value = NameValue;
    OpenerID 你这是值啊,你居然当id来传递,换成下面的试下,我写了2个简单的页面试了下是可以改变值得
    window.opener.document.getElementById("tbOpenerID").value = idvalue
    window.opener.document.getElementById("tbOpenerName").value = NameValue;
      

  7.   

    tbOpenerID,tbOpenerName 这里是你A页面的控件ID
    window.opener.document.getElementById("tbOpenerID").value = idvalue
    window.opener.document.getElementById("tbOpenerName").value = NameValue;
      

  8.   

    tbOpenerID,tbOpenerName这两个页面是B页面中的控件
    而organID是A页面中的一个控件
      

  9.   

    window.opener.document.getElementById(ID).value = idvalue
    这个ID必须是在A页面中存在,你的OpenerID这个根本就不是在A页面中定义的id名称
      

  10.   

    OpenerID是一个获取控件ID的参数
    因为这个页面好多地方都用到了,所以不能单独写死成一个控件的ID
      

  11.   

    这个javascript函数不是我写的,我们项目里面一直都在用,也没出什么问题,就今天我用就出现了这个问题,我刚刚又新建了一个页面,把js函数也改了,不用参数传递,直接用的就是A页面的控件ID,可还是提示为空或不是对象,我现在更加纠结了