您好我想从弹出窗口中将两个字符串值分配回父窗口,打开弹出窗口。
我在父窗口和子窗口中将两个隐藏字段作为runat服务器, 并在按钮单击事件上我将这些隐藏字段分配给某些文本值
/*(Hidden field 1 ->)*/ c_value.Value = Treeview.SelectedNode.Parent.Value;
/*(Hidden field 2 ->)*/ c_text.Value = "File selected";
并在body卸载事件中,我通过javascipt
将这些值分配给父的隐藏字段(HTML)
<script>
function assgin()
{
window.opener.document.getElementById("ctl00_ContentPlaceHolder1_p_value").value = document.getElementById('c_value').value;
window.opener.document.getElementById('ctl00_ContentPlaceHolder1_p_text').value = document.getElementById('c_text').value;
</script>
<body onunload="assign()">
但是当我尝试在父表单上获取这些值时,它显示为空。
我不明白为什么这些值变空可能是由于onunload事件,如果这是原因然后告诉我哪个事件我将这些值分配给父窗体。我想在关闭子窗口之前分配这些值。
答案 0 :(得分:0)
也许你的问题是由于“assgin()”函数的错误造成的。但如果没有,这是一个适合我的小例子。注意:您无法在本地磁盘上对此进行测试,因为在这种情况下,出于安全原因,浏览器将阻止访问window.opener。
parent.html
<input type="button" onclick="window.open('popup.html','My Popup')" value="Open popup" />
<br/>
Result from popup: <input type="text" id="result" />
popup.html
<script>
function assign() {
window.opener.document.getElementById("result").value = document.getElementById("mystring").value;
}
</script>
<body onunload="assign()">
Enter string and close the popup: <input type="text" id="mystring" />
<body>