由于.NET控件,Window.Opener和ID引用引用

时间:2009-05-25 16:45:57

标签: asp.net jquery window.opener

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

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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

在弹出窗口中:

window.opener.setTextbox("Hello world!");

答案 1 :(得分:1)

这应该有效

// original window script
var windowHandle = window.open(...);
windowHandle.top.otherWindowTextBox = document.getElementById('idOfTextBox); // or use jQuery

现在在弹出窗口中,您可以在打开弹出窗口的页面上引用文本框。

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