а.html
<form name="form1" метод="post" action="">
<a href="javascript:void(null)" class="add" onClick="open('b.html','','resizable=1,scrollbars=1,status=no,toolbar=no,menu= no,width=500,height=400,left=150,top=50')">Увеличить</a>
<input type="text" name="text1">
</форма>
б.html
<script Language="Javascript" type="text/javascript">
функция returnValue()
{
window.opener.document.all.text1.value=document.getElementById("returnText").value;
окно.закрыть();
}
</скрипт>
<input type="button" name="Submit" value="Submit" onclick="returnValue();">
<input name="returnText" type="text" id="returnText">
</p>
Дополнение: Использование window.opener
В общем случае window.opener используется только для решения проблемы отсутствия всплывающего окна при закрытии окна, и, как правило, его более глубокое понимание меньше. Фактически, window.opener относится к окну, которое вызывает метод window.open.
В основном он используется для разрешения частичных заявок на работе. Такая межстраничная операция очень полезна для работы.
Если вы открываете страницу в главном окне и хотите, чтобы главное окно обновилось, используйте это. Window.opener, открывающий страницу, эквивалентен окну главного окна.
Чтобы обновить главное окно, вы можете использовать
window.opener.location.reload();
Если вы используете виртуальный каталог: например, struts *.do предложит вам повторить попытку, вы можете изменить его на window.opener.yourformname.submit().
Это будет хорошо
2〉
В приложении возникла ситуация,
Открыть окно B в окне A, закрыть окно B после завершения операций в окне B и одновременно автоматически обновить окно A
функция closeWin(){
имеетЗакрыто = Истина;
window.opener.location="javascript:reloadPage();";
окно.закрыть();
}
функция window.onbeforeunload(){
если(!закрыто){
window.opener.location="javascript:reloadPage();";
}
}
</скрипт>
Приведенный выше код выдаст ошибку при закрытии окна B, сообщая, что объект отсутствует. Правильный код выглядит следующим образом:
функция closeWin(){
имеетЗакрыто = Истина;
window.opener.location="javascript:reloadPage();";
window.opener=ноль;
окно.закрыть();
}
функция window.onbeforeunload(){
if(!hasClosed){//Если метод closeWin был выполнен, этот метод не будет выполнен.
window.opener.location="javascript:reloadPage();";
}
}
</скрипт>
Метод reloadPage выглядит следующим образом:
функция перезагрузки страницы() {
история.go(0);
document.execCommand("обновить")
документ.местоположение = документ.местоположение;
документ.местоположение.перезагрузка();
}
PS: Поскольку нам необходимо поддерживать нормальное закрытие и принудительное закрытие окон для захвата событий, мы используем глобальную переменную hasClosed.
============================================
Кроме того, если родительское окно представляет собой фрейм, могут возникнуть проблемы при обновлении родительского окна:
Страницу невозможно обновить без повторной отправки информации.
Позже изменено следующим образом:
window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;
Нет необходимости выполнять встроенный метод reload(). Будьте осторожны и не добавляйте это предложение излишне:
window.opener.parent.document.frames.item('mainFrame').location.reload();
=============================================== =====================================
Наконец, чтобы поддерживать одновременное обновление обычного родительского окна и родительского окна фрейма, код выглядит следующим образом:
функция closeWin() {
имеетЗакрыто = Истина;
<%if(null != кадр){%>
window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;
<%}еще{%>
window.opener.location = "javascript:reloadPage();";
<%}%>
//window.opener.top.mainFrame.location="javascript:reloadPage();";
//self.opener.frames.mainFrame.location.reload(true);
window.opener = ноль;
окно.закрыть();
}
функция window.onbeforeunload(){
если (!hasClosed) {
<%if(null != кадр){%>
window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;
<%}еще{%>
window.opener.location = "javascript:reloadPage();";
<%}%>
window.opener = ноль;
}
}
Использование window.opener
window.opener возвращает ссылку на окно, создавшее текущее окно. Например, если вы щелкнете ссылку в a.htm, чтобы открыть b.htm, мы планируем ввести значение в b.htm и присвоить его a. htm. В текстовом поле с идентификатором «имя» это можно записать так:
window.opener.document.getElementById("name").value = "Входные данные";
Не очень хорошо разбираетесь в window.opener в javascript.
Почему его нельзя использовать во фрейме. Почему родительское окно всплывающего окна не может находиться на странице внутри фрейма? Так как же управлять родительским окном в фрейме через всплывающее окно?
opener.parent.frames['frameName'].document.all.input1.value попробуйте это :)
Если вы хотите изменить страницу в фрейме на другие страницы в том же фрейме или страницу в родительском фрейме, используйте родительский.
window.opener относится к родительской странице страницы, открытой window.open.
Объект window.frames может ссылаться на страницы в iframe или на страницу в наборе фреймов.
Это можно сделать
window.frames[0].document.getElementById('xx');
Это можно сделать
window.frames[0].document.body.innerHTML;
frm = window.parent.window.frames['uploadFrame'];
frmDocument = frm.document;
frm.sb(3); //sb — функция на странице uploadFrame
Для Firefox
Если вы столкнулись с ошибкой: родительский.document.frames не имеет PRperties.
Просто замените его следующим кодом: Этот код совместим с IE и ff. frm = window.parent.window.frames['uploadFrame']; Фактически, коллекция фреймов висит не в документе, а под объектом окна.
Обратите внимание, что на изменение страницы во фрейме таким образом есть ограничения, то есть она должна находиться в одном домене, иначе к ней нельзя будет получить доступ. Если она находится в одном домене, но имена поддоменов разные, то добавьте. предложение к задействованным файлам js и html.
document.domain = xxx.com [введите здесь свое доменное имя]
document.getElementById('iframeid').contentWindow.document.getElementById('someelementid');
просить:
В родительском окне window.open() дочернее окно. и определите переменную i.
Введите значение j в подокне, а затем window.opener.i=j;
Это можно передать. Но я добавил window.close(); в конце подокна, и значение не может быть передано.
Подскажите, пожалуйста, есть ли способ решить эту проблему. Позвольте мне передать значение перед закрытием дочернего окна.
Код выглядит следующим образом:
Родительское окно: родительский.jsp
<скрипт>
вар я;
window.open('<%=contextPath%>/usermanage/newscontrol/cd.jsp);
</скрипт>
<input type="button" onclick="alert(i)">
Подокно: cd.jsp
<скрипт>
функция субм(){
окно.opener.i=5;
окно.закрыть();
}
</скрипт>
<input type="button" onclick="subm()">
Лучший ответ, который вы можете поместить в родительское окно.
<input id="fromChild" type="hidden" />
<тип ввода="кнопка"
onclick="alert(document.getElementById('fromChild').value)">
В подокне:
функция субм(){
window.opener.document.getElementById('fromChild').value=5;
окно.закрыть();
}
Это можно сделать
<голова>
<язык сценария=javascript>
функция закрытия окна()
{ window.opener = null;
окно.закрыть();
}
</скрипт>
</голова>
<тело>
<input id="Button1" type="button" value="button" onclick="windowclose()" />
</тело>
-