window.opener.document.getElementById(organID)为空或不是对象怎么解决 本帖最后由 Maggie5851 于 2012-07-12 10:46:41 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 window.opener.document.getElementById('organID').value = idvalue 这段代码看着没问题,你是不是opener对象丢失了后者你弹出窗口的时候把opener置成null了? 没有置成null,这段代码是一开始我在其他页面使用的,一直没有问题,我就新做了这两个页面之后,就出现问题了,感觉有点莫名其妙的 什么意思?我对javascript实在是有点头大,特别是碰到这种为空或不是对象的问题 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函数页面代码就不贴了,太长了,标红的地方就是一直在提示为空或不是对象的地方 window.opener.document.getElementById(OpenerID).value = idvaluewindow.opener.document.getElementById(OpenerName).value = NameValue;OpenerID 你这是值啊,你居然当id来传递,换成下面的试下,我写了2个简单的页面试了下是可以改变值得window.opener.document.getElementById("tbOpenerID").value = idvaluewindow.opener.document.getElementById("tbOpenerName").value = NameValue; tbOpenerID,tbOpenerName 这里是你A页面的控件IDwindow.opener.document.getElementById("tbOpenerID").value = idvaluewindow.opener.document.getElementById("tbOpenerName").value = NameValue; tbOpenerID,tbOpenerName这两个页面是B页面中的控件而organID是A页面中的一个控件 window.opener.document.getElementById(ID).value = idvalue这个ID必须是在A页面中存在,你的OpenerID这个根本就不是在A页面中定义的id名称 OpenerID是一个获取控件ID的参数因为这个页面好多地方都用到了,所以不能单独写死成一个控件的ID 这个javascript函数不是我写的,我们项目里面一直都在用,也没出什么问题,就今天我用就出现了这个问题,我刚刚又新建了一个页面,把js函数也改了,不用参数传递,直接用的就是A页面的控件ID,可还是提示为空或不是对象,我现在更加纠结了 chrome和IE产生的滑动条 mouseup无法捕获 Ext4.0.7关于columnchart的颜色和宽度的问题 json数组内部格式不统一,在JS中如何解析? 谁有JSP开发的Web项目使用加密狗的例子啊? 求demo 怎么样用JS控制本身页面的属性? 这个js怎么写? iframe 传值问题 jsp能接受javascript传来的值吗? 有关iframe的简单问题 求教~为什么程序只能在Editplus中运行,IE和谷歌都不行? window.frames[0]到底是什么?
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函数页面代码就不贴了,太长了,标红的地方就是一直在提示为空或不是对象的地方
window.opener.document.getElementById(OpenerName).value = NameValue;
OpenerID 你这是值啊,你居然当id来传递,换成下面的试下,我写了2个简单的页面试了下是可以改变值得
window.opener.document.getElementById("tbOpenerID").value = idvalue
window.opener.document.getElementById("tbOpenerName").value = NameValue;
window.opener.document.getElementById("tbOpenerID").value = idvalue
window.opener.document.getElementById("tbOpenerName").value = NameValue;
而organID是A页面中的一个控件
这个ID必须是在A页面中存在,你的OpenerID这个根本就不是在A页面中定义的id名称
因为这个页面好多地方都用到了,所以不能单独写死成一个控件的ID