a.html
<form name="form1" method="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')">Erhöhen</a>
<Eingabetyp="text" name="text1">
</form>
b.html
<script language="Javascript" type="text/javascript">
Funktion returnValue()
{
window.opener.document.all.text1.value=document.getElementById("returnText").value;
window.close();
}
</script>
<input type="button" name="Submit" value="Submit" onclick="returnValue();">
<Eingabename="returnText" type="text" id="returnText">
</p>
Ergänzung: Verwendung von window.opener
Im Allgemeinen wird window.opener nur verwendet, um das Problem zu lösen, dass beim Schließen des Fensters kein Popup-Fenster angezeigt wird, und es gibt im Allgemeinen weniger Verständnis für sein tieferes Verständnis. Tatsächlich bezieht sich window.opener auf das Fenster, das die Methode window.open aufruft.
Es wird hauptsächlich verwendet, um Teileingaben bei der Arbeit zu lösen. Diese Art der seitenübergreifenden Bedienung ist für die Arbeit sehr hilfreich.
Wenn Sie eine Seite im Hauptfenster öffnen und möchten, dass das Hauptfenster aktualisiert wird, verwenden Sie dies. Der window.opener, der die Seite öffnet, entspricht dem Fenster des Hauptfensters.
Zum Aktualisieren des Hauptfensters können Sie verwenden
window.opener.location.reload();
Wenn Sie ein virtuelles Verzeichnis verwenden: z. B. struts *.do fordert Sie auf, es erneut zu versuchen. Sie können es in „window.opener.yourformname.submit()“ ändern.
Das wird in Ordnung sein
2〉
Es gibt eine Situation in der Bewerbung,
Öffnen Sie Fenster B in Fenster A, schließen Sie Fenster B nach Abschluss der Vorgänge in Fenster B und aktualisieren Sie gleichzeitig automatisch Fenster A
Funktion closeWin(){
hasClosed = true;
window.opener.location="javascript:reloadPage();";
window.close();
}
Funktion window.onbeforeunload(){
if(!hasClosed){
window.opener.location="javascript:reloadPage();";
}
}
</script>
Der obige Code löst beim Schließen von Fenster B eine Fehlermeldung aus, die besagt, dass das Objekt fehlt. Der korrekte Code lautet wie folgt:
Funktion closeWin(){
hasClosed = true;
window.opener.location="javascript:reloadPage();";
window.opener=null;
window.close();
}
Funktion window.onbeforeunload(){
if(!hasClosed){//Wenn die closeWin-Methode ausgeführt wurde, wird diese Methode nicht ausgeführt.
window.opener.location="javascript:reloadPage();";
}
}
</script>
Die reloadPage-Methode lautet wie folgt:
Funktion reloadPage() {
geschichte.go(0);
document.execCommand("refresh")
document.location = document.location;
document.location.reload();
}
PS: Da wir das normale Schließen und erzwungene Schließen von Fenstern unterstützen müssen, um Ereignisse zu erfassen, verwenden wir die globale Variable hasClosed.
============================================
Wenn das übergeordnete Fenster außerdem ein Rahmen ist, können beim Aktualisieren des übergeordneten Fensters Probleme auftreten:
Die Seite kann nicht aktualisiert werden, ohne die Informationen erneut zu senden.
Später wie folgt geändert:
window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;
Es ist nicht erforderlich, die integrierte Methode reload() auszuführen. Achten Sie darauf, diesen Satz nicht überflüssig hinzuzufügen:
window.opener.parent.document.frames.item('mainFrame').location.reload();
=============================================== =====================================
Um schließlich die gleichzeitige Aktualisierung des normalen übergeordneten Fensters und des übergeordneten Rahmenfensters zu unterstützen, lautet der Code wie folgt:
Funktion closeWin() {
hasClosed = true;
<%if(null != Frame){%>
window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;
<%}else{%>
window.opener.location = "javascript:reloadPage();";
<%}%>
//window.opener.top.mainFrame.location="javascript:reloadPage();";
//self.opener.frames.mainFrame.location.reload(true);
window.opener = null;
window.close();
}
Funktion window.onbeforeunload(){
if (!hasClosed) {
<%if(null != Frame){%>
window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;
<%}else{%>
window.opener.location = "javascript:reloadPage();";
<%}%>
window.opener = null;
}
}
Verwendung von window.opener
window.opener gibt einen Verweis auf das Fenster zurück, das das aktuelle Fenster erstellt hat. Wenn Sie beispielsweise auf einen Link in a.htm klicken, um b.htm zu öffnen, planen wir, einen Wert in b.htm einzugeben und ihn a zuzuweisen. htm. In einem Textfeld mit der ID „Name“ kann es wie folgt geschrieben werden:
window.opener.document.getElementById("name").value = "Eingabedaten";
Ich habe keine guten Kenntnisse von window.opener in Javascript.
Warum kann es nicht in einem Frame verwendet werden? Warum kann sich das übergeordnete Fenster eines Popup-Fensters nicht auf einer Seite innerhalb des Frames befinden? Wie bedient man also das übergeordnete Fenster im Frame über ein Popup-Fenster?
opener.parent.frames['frameName'].document.all.input1.value versuchen Sie dies :)
Wenn Sie die Seite im Frame in andere Seiten im selben Frame oder in die Seite im übergeordneten Frame ändern möchten, verwenden Sie parent.
window.opener bezieht sich auf die übergeordnete Seite der von window.open geöffneten Seite.
Das window.frames-Objekt kann auf Seiten in einem Iframe oder auf eine Seite in einem Frameset verweisen.
Dies ist möglich
window.frames[0].document.getElementById('xx');
Dies ist möglich
window.frames[0].document.body.innerHTML;
frm = window.parent.window.frames['uploadFrame'];
frmDocument = frm.document;
frm.sb(3); //sb ist eine Funktion auf der uploadFrame-Seite
Für Firefox
Wenn ein Fehler auftritt: parent.document.frames hat keine PRperties
Ersetzen Sie ihn einfach durch den folgenden Code. Dieser Code ist mit IE und ff kompatibel. Tatsächlich hängt die Frames-Sammlung nicht im Dokument, sondern unter dem Fensterobjekt.
Beachten Sie, dass es Einschränkungen beim Ändern der Seite im Frame auf diese Weise gibt, das heißt, sie muss sich unter derselben Domäne befinden, andernfalls kann nicht darauf zugegriffen werden. Wenn sie sich unter derselben Domäne befindet, die Subdomänennamen jedoch unterschiedlich sind, fügen Sie sie hinzu ein Satz zu den beteiligten js- und html-Dateien.
document.domain = xxx.com [Geben Sie hier Ihren Domainnamen ein]
document.getElementById('iframeid').contentWindow.document.getElementById('someelementid');
fragen:
Im übergeordneten Fenster window.open() ein untergeordnetes Fenster. und definiere eine Variable i.
Geben Sie im Unterfenster einen Wert j ein und dann window.opener.i=j;
Dies kann weitergegeben werden. Aber ich habe window.close(); am Ende des Unterfensters hinzugefügt und der Wert kann nicht übergeben werden.
Bitte sagen Sie mir, ob es eine Möglichkeit gibt, dieses Problem zu lösen. Lassen Sie mich den Wert übergeben, bevor ich das untergeordnete Fenster schließe.
Der Code lautet wie folgt:
Übergeordnetes Fenster: parent.jsp
<Skript>
var i;
window.open('<%=contextPath%>/usermanage/newscontrol/cd.jsp);
</script>
<input type="button" onclick="alert(i)">
Unterfenster:cd.jsp
<Skript>
Funktion subm(){
window.opener.i=5;
window.close();
}
</script>
<input type="button" onclick="subm()">
Die beste Antwort können Sie im übergeordneten Fenster einfügen
<input id="fromChild" type="hidden" />
<input type="button"
onclick="alert(document.getElementById('fromChild').value)">
Im Unterfenster:
Funktion subm(){
window.opener.document.getElementById('fromChild').value=5;
window.close();
}
Dies ist möglich
<Kopf>
<Skriptsprache=Javascript>
Funktion windowclose()
{ window.opener=null;
window.close();
}
</script>
</head>
<Körper>
<input id="Button1" type="button" value="button" onclick="windowclose()" />
</body>
-