我有一个.aspx页面,上面有链接,然后单击时会使用window.open
打开一个新窗口。
我需要发送一个整数并将该数字放入文本框(这是一个.NET控件)。
当我在弹出的窗口上调用window.opener
时,我必须引用文本框的ID。问题是,如果您向控制树添加内容,ID会不时更改。
如何从新窗口可靠地引用文本框的ID?
我也安装了jQuery,但不确定我是否可以在新窗口中使用jQuery?
答案 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;