согласно коду счастья
В JavaScript объект window.opener можно использовать для доступа к элементам HTML, присутствующим в родительском окне, из дочернего окна (всплывающее окно или аналогичное).
Давайте рассмотрим два файла HTML:
openwindow.htm - здесь есть текстовое поле и кнопка, нажатие на которую открывает файл target.htm в новом окне браузера
target.htm - здесь есть код для изменения значения текстового поля, присутствующего в родительском окне (openwindow.htm), которое открывает этот файл
openwindow.htm: (parent window)
<html>
<script language="javascript">
function openwindow()
{
window.open("target.htm","_blank","height=200,width=400,
status=yes,toolbar=no,menubar=no,location=no")
}
</script>
<body>
<form name=frm>
<input id=text1 type=text>
<input type=button onclick="javascript:openwindow()" value="Open window..">
</form>
</body>
</html>
Если вы не знакомы с методом window.open (), вам будет интересно, что такое «высота = 200, ширина = 400, статус = да, панель инструментов = нет, меню = нет, местоположение = нет», дон не беспокойтесь, он просто определяет размер и внешний вид нового окна, эту строку кода можно изменить на window.open ("target.htm", "_ blank"), просто посмотрите разницу в выводе, если вы измените.
Обратите внимание, что если параметр «_blank» не предоставлен, то функциональность будет отличаться в IE и Firefox, в Firefox вместо нового окна будет открыта новая вкладка. Просто используйте window.open ("target.htm") и убедитесь сами. Для получения дополнительной информации о методе window.open () и его параметрах см. http://msdn2.microsoft.com/en-us/library/ms536651(VS.85).aspx. Также обратите внимание, что в атрибуте id необходим, тогда только код target.htm (показанный ниже) будет выполняться в Firefox.
target.htm: (child window)
<html>
<script language="javascript">
function changeparent()
{
window.opener.document.getElementById('text1').value="Value changed.."
}
</script>
<body>
<form>
<input type=button onclick="javascript:changeparent()" value="Change opener's textbox's value..">
</form>
</body>
</html>
Надеюсь, вы сможете понять, что происходит в приведенном выше коде, в новом окне (target.htm) мы используем объект window.opener для доступа к текстовому полю, присутствующему в родительском окне (openwindow.htm). Вам просто нужно добавить префикс «window.opener» и написать тот же код, который вы напишите на HTML-странице родительского окна, чтобы получить доступ к его элементам.
Обновленный ответ
1. Put a hidden field on the child page.
<asp:HiddenField ID="hidChild" runat="server"/>
2. in your javascript function
var childHidden = document.getElementById('<%hidChild.ClientID%>');
childHidden.value = window.opener.document.getElementById('text1').value;
3. Now access this hidden control on the page load event.
Response.Write(hidChild.Value); or Session["ParentVal"] =hidChild.Value;
таким образом, у вас будет значение родительской страницы при загрузке страницы дочернего элемента.