Asp.net 由于.NET控件,Window.Opener和按ID引用问题

Asp.net 由于.NET控件,Window.Opener和按ID引用问题,asp.net,jquery,window.opener,Asp.net,Jquery,Window.opener,我有一个.aspx页面,上面有一个链接,单击该页面后,将使用window.open打开一个新窗口 我需要返回一个整数,并将该数字放入文本框(这是一个.NET控件) 当我在弹出的窗口上调用window.opener时,我必须引用文本框的ID。问题是,如果向控件树中添加内容,ID会不时更改 如何从新窗口可靠地引用文本框的ID 我也安装了jQuery,但不确定是否可以从新窗口使用jQuery?这应该可以 // original window script var windowHandle = wind

我有一个.aspx页面,上面有一个链接,单击该页面后,将使用
window.open
打开一个新窗口

我需要返回一个整数,并将该数字放入文本框(这是一个.NET控件)

当我在弹出的窗口上调用
window.opener
时,我必须引用文本框的ID。问题是,如果向控件树中添加内容,ID会不时更改

如何从新窗口可靠地引用文本框的ID

我也安装了jQuery,但不确定是否可以从新窗口使用jQuery?

这应该可以

// original window script
var windowHandle = window.open(...);
windowHandle.top.otherWindowTextBox = document.getElementById('idOfTextBox); // or use jQuery
现在,在弹出窗口中,您有一个对打开弹出窗口页面上文本框的引用

// script in popup window.
top.otherWindowTextBox.value = someInteger;
这应该行得通

// original window script
var windowHandle = window.open(...);
windowHandle.top.otherWindowTextBox = document.getElementById('idOfTextBox); // or use jQuery
现在,在弹出窗口中,您有一个对打开弹出窗口页面上文本框的引用

// script in popup window.
top.otherWindowTextBox.value = someInteger;

不要直接从弹出窗口访问元素,而是在页面中放置一个弹出窗口可以调用的函数。在函数中,可以插入元素的实际id:

function setTextbox(value) {
   document.getElementById('<%=TheTextBox.ClientID%>').value = value;
}

不要直接从弹出窗口访问元素,而是在页面中放置一个弹出窗口可以调用的函数。在函数中,可以插入元素的实际id:

function setTextbox(value) {
   document.getElementById('<%=TheTextBox.ClientID%>').value = value;
}

注意:您还应检查
top.otherWindowTextBox
是否未定义,如果打开弹出窗口的窗口关闭,可能会发生这种情况。注意:您还应检查
top.otherWindowTextBox
是否未定义,如果打开弹出窗口的窗口关闭,可能会发生这种情况。